const修飾變數的作用 防止指標的值被修改

2021-09-10 09:04:31 字數 864 閱讀 7221

可以用來修飾函式的引數指標,防止函式修改外面的變數的值

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 放入記憶體中...