常量指標和指標常量的詳解
阿新 • • 發佈:2021-01-04
常量指標和指標常量的詳解
轉:weixin_399394252019-06-11 17:27:27
原文地址:https://blog.csdn.net/weixin_39939425/article/details/91450343
說一下 常量指標和指標常量 的區別。
常量指標
指向常量的指標,也就是說指標指向的物件是常量,指向的常量不能修改。指標不是一個常量,
可以把指標指向別一個常量。
常量指標是我們最常用的,一般宣告形式如下:
const int *p;
int const *p;
例:
int a=1, b=2;
const int *p; // 或者是 int const *p;
printf(“data a:%d\n”,*p);
p = &b;
printf(“data b:%d\n”,*p);
上邊的程式碼是正確的用法。
不可以對指向的內容做修改:
*p = 3; // 錯誤,常量指標不變的常量,如果指標指向了某個地址,在解引用後不能去修改指標變數的值
指標常量
指標指向的地址不可以改變,地址的內容可以通過指標改變。指標常量在定義時必須賦值。
例:
int a=1, b=3;
int *const p = &a;
*p = 11;
printf("data a:%d\n",*p);
*p = 12;
printf(“data b:%d\n”,*p);
不能對指向的地址進行修改:
p = &b; // 錯誤,指標指向的地址不可以改變,地址的內容可以通過指標改變
我們也可以這樣記
const 在誰前邊誰就不可以修改:
常量指標 : const 在指標前邊,我們就不可以修改指標。
指標常量 : const 在變數前邊,我們就不可以修改指標的地址。