1樓:金色潛鳥
const 限定一個變數是const,一旦初始化後,它的數值就不允許改變,只能用於「讀」。const量不能做左值,不能用於「寫」 。
例如:const int x=10; // 宣告和初始化x=20; // 錯了,x 不能做左值。
printf("%d\n",x);
用於指標時,比較複雜。
const int *p; // (*p)只讀int const *p; // (*p) 只讀int * const p; // p 只讀
2樓:匿名使用者
、關於一般常量
宣告或定義的格式如下:
const 《型別說明符》 《變數名》 = 《常量或常量表示式》; [1]
《型別說明符》 const 《變數名》 = 《常量或常量表示式》; [2]
[1]和[2]的定義是完全等價的。
例如:整形int(或其他內建型別:float,double,char)
const int bufsize = 512;
或者int const bufsize = 512;
因為常量在定義後就不能被修改,所以定義時必須初始化。
bufsize = 128; // error:attempt to write to const object
const string cntstr = "hello!"; // ok:initialized
const i, j = 0; // error: i is uninitialized const
非const變數預設為extern。
const 物件預設為檔案的區域性變數。要使const變數能夠在其他的檔案中訪問,必須顯式地指定它為extern。
例如:const int bufsize = 512; // 作用域只限於定義此變數的檔案
extern const int bufsize = 512; // extern用於擴大作用域,作用域為整個源程式(只有extern 位於函式外部時,才可以含有初始化式)
二、關於陣列及結構體
宣告或定義的格式如下:
const 《型別說明符》 《陣列名》[《大小》]…… [1]
《型別說明符》 const 《陣列名》[《大小》]…… [2]
[1]和[2]的定義是完全等價的。
例如:整形int(或其他內建型別:float,double,char)
const int cntintarr = ;
或者int const cntintarr = ;
struct si
;const si s = ,};
// 上面的兩個const都是變數集合,編譯器會為其分配記憶體,所以不能在編譯期間使用其中的值(例如:int temp[cntintarr[2]],這樣的話編譯器會報告不能找到常量表示式)
三、關於引用
宣告或定義的格式如下:
const 《型別說明符》 &《變數名》 = …… [1]
《型別說明符》 const &《變數名》 = …… [2]
[1]和[2]的定義是完全等價的。
例如:const int i = 128;
const int &r = i;(或者 int const &r = i;)
const 引用就是指向const 物件的引用。
普通引用不能繫結到const 物件,但const 引用可以繫結到非const 物件。
const int ii = 456;
int &rii = ii; // error
int jj = 123;
const int &rjj = jj; // ok
非const 引用只能繫結到與該引用同型別的物件。
const 引用則可以繫結到不同但相關的型別的物件或繫結到右值。
例如繫結到字面值常量
2.int i = 50;
const int &r2 = r + i; // 引用r繫結到右值
3.double dval = 3.1415;
const int &ri = dval; // 整型引用繫結到double 型別
編譯器會把以上**轉換成如下形式的編碼:
int temp = dval; // create temporary int from double
四、關於指標
1.指向const 物件的指標(指標所指向的內容為常量)
宣告或定義的格式如下(定義時可以不初始化):
const 《型別說明符》 *《變數名》 …… [1]
《型別說明符》 const *《變數名》 …… [2]
[1]和[2]的定義是完全等價的。
例如:const int i = 100;
const int *cptr = &i;
3樓:哦米噶滴
const定義常量,就是定義賦值後,無法改變。
c++中const的作用是什麼?
4樓:秒懂百科
const:一個c語言的關鍵字
c++中的const怎麼使用?
5樓:秒懂百科
const:一個c語言的關鍵字
6樓:匿名使用者
如果const用於定義一個非指標的普通變數,就是定義了一個常變數,這個變數以後的值在生命期內是不能改變的,因此也必須對該變數進行初始化,在c++中要在類的初始化列表中初始化。
如果const用於定義一個指標變數,不同的寫法有不同的意思。例如const char *p和char* const p 前者表示p指向的內容是不能夠改變的,後者是指p本身的值是不能夠改變的。
如果用於修飾函式返回值,效果和修飾變數一樣。
const修飾類的成員函式,則該成員函式不能修改類中任何非const成員函式。一般寫在函式的最後來修飾。
const修飾類物件表示該物件為常量物件,在物件的生命期中其中的任何成員都不能被修改。
關於const用法還是比較複雜的,還有很多用法,我也沒有總結詳盡,以後遇到可以自己寫程式測試。
c和c 中const用法具體的區別是什麼
c中的const,功能比較單一,較容易理解 作用 被修飾的內容不可更改。使用場合 修飾變數,函式引數,返回值等。c 中應用場合要豐富的多 特點 是執行時const,因此不能取代 define用於成為陣列長度等需要編譯時常量的情況。同時因為是執行時const,可以只定義而不初始化,而在執行時初始化。如...
維他命C有啥用 維C有什麼用?
美白,抗氧化,促進新陳代謝。維c有什麼用?服用維生素c有許多好處 第。一 維生素c可以增強人體的免疫力,殺滅多種入侵的細菌,對於身體的損傷有很好的修復作用。第。二 維生素c也稱抗壞血酸,可以抗壞血病。第。三 還能夠美白養顏,對於提高機體的抗病毒能力有一定的好處和療效。但是如果經常吃維生素c,也有一定...
c在c語言程式設計裡是做什麼用的, c 在C語言程式設計裡是做什麼用的??
山大威海校區 通過你的描述我大概知道你要表述的意思了,fscanf是進行檔案讀取操作,而檔案中資料的存放格式是用中間 來描述規範的,當然,第一項大家都知道,是開啟檔案的指標 file,這裡是output fopen 至於第三項,是要儲存的位置,你的情況是 c字元,而 c就是檔案中的間隔符。 百小度 ...