C 指標和常量的關係

2021-10-06 20:28:51 字數 1437 閱讀 8968

指標指向乙個常量資料

不能通過指標修改資料,因為資料是常量

可以修改指標的指向,因為指標不是常量

int age01 = 18;

int age02 = 28;

// 指標指向常量

const int * person01 = &age01; // const用來欺騙指標,讓指標認為自己指向的是常量

// 因為age01本身並不是常量,所以可以這樣修改

age01 = 30;

*person01 = 200; // 這樣做是非法的,因為指標指向的資料是常量,常量不允許修改

person01 = &age02; // 可以這樣修改

指標是個常量,資料不是常量

可以通過指標修改指向的資料,因為資料不是常量

不可以修改指標指向,因為指標是個常量

![thread_0_20190902122824_s_4345379_o_w_710_h_300_68632](c:\users\clyde\desktop\thread_0_20190902122824_s_4345379_o_w_710_h_300_68632.gif)int age01 = 18;

int age02 = 28;

// 常量指標

int * const person02 = &age01;

*person02 = 30; // 可以通過指標修改指向資料的內容,因為資料並不是常量

person02 = &age02; // 不能修改指標指向,因為指標是乙個常量

指標和指向的資料都是常量

指標指向和資料都不允許修改,因為都是常量

int age01 = 18;

int age02 = 28;

// 常量指標指向常量資料

const int * const person02 = &age01;

*person02 = 30; // 非法,因為指標指向的資料是常量,常量不允許修改

person02 = &age02; // 非法,不能修改指標指向,因為指標是乙個常量

在上課的時候老師講的int * const person02 = &age01; 的叫常量指標,可以查閱了部落格之後發現也有人管這個叫指標常量的。

不管,反正const修飾的是指標,指標的指向就不能修改,const如果修飾的是指向的資料,資料就不能直接修改

c 指標常量 和 常量指標

指標常量 指向常量的位址,不允許改變指向位址,指向位置的變數值能被改變 p不可以變 const p 常量指標 指向常量的指標,指標指向的物件不能通過這個指標來修改,可是仍然可以通過原來的宣告修改,也就是說量指標可以被 賦值為變數的位址,之所以叫做常量指標,是限制了通過這個指標修改變數的值 cont ...

C 指標常量和常量指標

首先在c 目前我看到的型別宣告方式,該變數的型別都是由最後幾個字來確定,前面是定語,修飾詞。有其他不同的歡迎指出,共同學習 比如 指標陣列 是陣列,陣列裡存的是指標。陣列指標 是指標,指標指向陣列。所以指標常量 首先是常量,然後是乙個指標,即是該指標是乙個常量,指標的值即位址不會變。常量指標 首先是...

C 指標常量 常量指標和常指標常量

1 指標常量 如果在定義指標變數時候,指標變數前用const修飾,被定義的指標變數就變成了乙個指標型別的常變數,指標型別的常變數簡稱為指標常量。格式如下 資料型別 const 指標變數 變數名 修飾符const與指標變數緊鄰,說明指標變數不允許修改,既然指標變數的值不能修改,所以一定要在定義的時候給...