const int i = 0;
int const i= 0;
這兩種用法相同,宣告的同時需要初始化。
extern const int i = 0;
extern const int i ;
c++ 將const 變數的作用域設定為乙個檔案內。如 tall.cpp中的const int i;不能被 high.cpp 直接呼叫。但有時想要讓 tall.cpp 中的const int i 被其他檔案呼叫。那麼就需要加上extern關鍵字,如第一條語句所示。而 high.cpp 想要呼叫 tall.cpp中的 const int i,則需要在檔案中做出宣告,如第二條語句所示。
int i = 0;
const int j = 0;
const int & k = i; //常量引用,引用非常量。
const int & k = j; //常量引用,引用常量。
int & k = j; //這條語句是錯誤的,因為 j 為常量,而 k 為非常量引用,可能會修改 j 的值。
const int & 這種形式叫做對「常量引用」,它是「對const的引用」的簡稱。它引用的物件可以是常量,也可以是非常量。注意:常量引用可以引用非常量、常量。而非常量引用只能引用非常量。
int i = 0;
int * k = & i ;
const int * j = & i ; //可以理解為 const 修飾 * j ,即 * j是乙個常量。而 j 可以指向不同的變數,也就是 j 可以修改 可以賦值。
j = k; //正確的。
* j = 1; //錯誤的。
int * const r = & i; //可以理解為const修飾 r ,即 r 永遠指向 i 。而* r 所代表的值是可以改變的。
*r = 5; //正確的。
r = k; //錯誤的。
那麼,你能否根據上述內容理解這條語句呢:const int * const j = & i;
看以下**:
const stock land = stock( " canshu " );
land.show();
這段**定義了stock類的乙個物件land。由於land是乙個常量物件,所以show()是不能夠修改land值的。那麼如何正確宣告show()呢?
下面是常見的一種宣告普通函式的方法:
int sum ( const int a, const int b )
函式引數表中,含有兩個const 形參:const int a, const int b。這兩個const的存在使得sum函式只能使用a,b的值而不能修改。
類似的,我們可以定義show()函式。但是從show()的呼叫方式 land.show() 可以看到,show()是沒有形參的。怎麼辦呢?其實show()的形參就是land ,那麼我們要如何使用const呢?看下面**:
void stock::show() const{ cout<<"啊?」<
此處的const就是表示show()只是呼叫land的資料而不進行修改。
const int * const i = & j ;
這段**有兩個const。第乙個修飾 * i ,被稱為底層const。 第二個修飾 i,被稱為頂層const。
C語言const幾種常見用法
作為乙個c程式設計師,const是最常用到的關鍵字之一,當然也是c語言面試最常被問到的經典問題之一。初學者常被這個關鍵字困擾,也因此在面試時倒在const的石榴裙下。這個關鍵字也困擾了我很長時間,為了讓自己記憶深刻一點,故做了這個學習筆記。注 在寫本篇學習筆記時,本人學習和參考了網路文章,並做了借鑑...
C語言中const的幾種用法區分
你知道我們宣告乙個變數時象這樣int i 這個i是可能在它處重新變賦值的。如下 int i 0 i 20 這裡重新賦值了 不過有一天我的程式可能需要這樣乙個變數 暫且稱它變數 在宣告時就賦乙個初始值。之後我的程式在其它任何處都不會再去重新對它賦值。那我又應該怎麼辦呢?用const const int...
Const與Const的用法
const 是c 中常用的型別修飾符,常型別是指使用型別修飾符const說明的型別,常 型別的變數或物件的值是不能被更新的。const的作用 1 可以定義常量 即const int a 5 a就是乙個被const修飾的常量,它在程式執行期間是無法被改變的!2 保護被修飾的東西 例如乙個函式的首部為v...