第一種方式:
int x=3;
const
int*p=
&x;p=
&y;//正確
*p=4
//錯誤,因為const修飾的是*p(和int const *p 一樣)
第二種方式
int x=3;
int*
const p=
&x;p=
&y;//錯誤,因為const此時修飾的是p的位址
第三種方式:
const
int x =3;
const
int*p=
&x;p=
&y;//錯誤
*p=4
;//錯誤
變數名
儲存位址
儲存內容x&x
3p&p&x
const
int x=3;
const
int&y=x;
//引用
x=10
;//正確
y=20
;//錯誤,因為修飾的是&y
變數名
儲存位址
儲存內容x&x
3練習題:
int x=3;
const
int y=x;y=5
;//錯誤
int x=3;
const
int y =
&x;y=5;
//錯誤
int x =
3,z=4;
int*
const y=
&x;y=
&z;//錯誤
const
int x =3;
const
int&y=x;y=5
;//錯誤
const
int x=3;
int*y=
&x;//錯誤,const 修飾的是x
int x=3;
const
int*y=
&x;//正確
因為x的許可權比較大,我們可以有許可權小的接受許可權大的,但許可權大的不能接受許可權小的
C 基礎之const基礎用法
前世 下列 for 迴圈語句有兩個問題,兩個都和使用 512 作為迴圈上界有關。for int index 0 index 512 index 第乙個問題是程式的可讀性。比較 index 與 512 有什麼意思呢?迴圈在做什麼呢?也就是說 512 作用何在?第二個問題是程式的可維護性。假設這個程式非...
小白學C語言基礎2
語句 1.順序執行語句 2.分支選擇語句 條件成立則執行 if 二者執行其一 if else 多種情況 if else if else if 多種情況擇其一 if else if else if else if注意事項 i 如果分支語句只有一條語句時 可以省略 但是不建議省略 ii if condi...
深入辨析C 中的static和const
const和static在c 中經常被使用到。簡單地說 const定義乙個類例項化範圍內的常量,而static定義的是類的靜態成員變數是由乙個類的所有例項物件共享的。再仔細說明一下 另外,也存在例外的情況!在stl原始碼剖析中1.9.3中提到的 如果在class中含有const static int...