可以用const修飾符號常量。const double pi=3.14
const int i和int const i是一樣的
也可以用const限定指標,但是限制指標時有幾個需要注意的地方。
1 const修飾的位置
const int* i,此時效果等同於int const *i
可以這麼看,先把const去掉,那麼上面分別是(int* )i 和 int (*i)、 都意味著指向int型數的指標
但是當這麼const再接近i時,則不是那麼一回事了。int * const i 這是const時修飾i的,也就是說,i裡裝的資料也就是記憶體位址是不可修改的,而此對應位址指向的 資料反而是可以修改的。
此時,i+=2 //是非法的
*i=3 //是合法的
2 指標賦值
將常量或者非常量資料位址賦值給常量指標是合法的,但是將常量資料位址賦給普通指標則是非法的
因為常量指標意味著無論指向的資料是不是常量,都可以通過指標修改其具體的值。但是普通指標如果賦給常量資料的話,則可以通過指標修改常量資料,這與加const的初衷相悖,所以行不通。
當然也可以通過const來修飾陣列
double num[4]=
const double *d=num;
*d=&num[2] //不允許
*d=9.32 //允許
double a[3]=;
const double b[4]=;
double *p=a; //合法
*p=b[2]; //不合法
p=&a[2]; // 合法
const關鍵詞的作用
c語言const是畢業生面試被提問比較高的乙個問題,這裡簡單總結一下 1 定義const常量,使其具有不可變性 const修飾的int型,再進行數值計算會報錯2 便於進行型別檢查,告訴編譯器處理內容,消除隱患 例如 void f const int i 編譯器就會知道i是乙個常量,不允許修改 3 方...
C 中const關鍵詞總結
下午在調程式時,遇到error passing class name as this argument of class function discards qualifiers的編譯的錯誤,錯誤的意思是 this指標在作為引數傳入class function時限定符被取消了 google一下,是這...
C 中const關鍵詞總結
下午在調程式時,遇到 error passing class name as this argument of class function discards qualifiers的編譯的錯誤,錯誤的意思是 this指標在作為引數傳入class function時限定符被取消了 google一下,是...