可以用來修飾函式的引數指標,防止函式修改外面的變數的值
void test(const *p){
這個p是不能被修改的,只可以訪問
int * const p和 int const *p的區別
int * const p 裡面,const修飾的是指標,這個指標的指向不能被修改
例如:
int height=10;
int age=30;
int *const p=&age; // const修飾p指標,而不是p指標的值
p=&height; // 修改指標的指向, 這句**會報錯
int const *p ; //const修飾的是*p,也就是p指的值,也就是p指標的值不能被修改,但是可以修改指向
例如:
int const *p = age;
*p=30; //這句**會報錯
p=&height; //這句**是對的
const修飾的引用叫常引用
const修飾的引用變數可以直接傳值,也可以傳引用變數
如果是直接引用作為引數,是不能直接傳值的
int sum(int &a,int&b){
return a+b;
}sum(10,20) 這行**會報錯
必須
int a=10
int b=20
sum(a,b)
如果想sum不報錯,可以把函式引數用const去修飾,把引數變成常引用
例如:
int sum(const int &a,const int &b)
以上規則同樣適用於const指標 const修飾的變數
const定義的常量不能直接被修改,只能間接被修改,如,通過指標。int main const int a 20 int p 10 指標變數指向的是a的位址,通過給指標變數p賦值來改變a中的值 printf d n a return 0 結果 10 在c語言中,當const修飾的識別符號,這個識別符...
const修飾的變數
1.const char p1 2.char const p2 以上兩種情況,到底哪種是指標不能變,哪種是變數不能變呢?下面做乙個記錄,防止以後出錯 記住一句口訣 左定值,右定向 如果const在 左邊,那麼定義的變數值不能改變,但指標是可以改變的 如果const在 右邊,方向即指標不能變,也就是這...
const 修飾的唯讀變數
const 修飾的唯讀變數必須在定義的同時初始化 編譯器通常不為普通const 唯讀變數分配儲存空間,而是將它們儲存在符號表中,這使 得它成為乙個編譯期間的值,沒有了儲存與讀記憶體的操作,使得它的效率也很高。例如 define m 3 巨集常量 const int n 5 此時並未將n 放入記憶體中...