1. 程式人生 > 其它 >常量指標和指標常量的詳解

常量指標和指標常量的詳解

技術標籤:C語言c語言指標

常量指標和指標常量的詳解

轉: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;

p = &a;
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 在變數前邊,我們就不可以修改指標的地址。