大家先不要糾結你寫的代碼中包含的是指針常量,還是常量指針。先理解自己的代碼。
先看看這幾種聲明方式:
[cpp]
int *pi1;
int* pi2;
int *pi1;
int* pi2;
這兩種聲明方式的結果都是一樣的,pi1和pi2都是整型指針,所謂整型指針,就是指向整數數組首地址的指針變量。其實int*和int *描述的都是某個變量,標示某個變量的屬性。
繼續往下看
[cpp]
int const *pid1;
int const *pid1; [cpp] view plaincopyprint?const int *pid2;
const int *pid2;
這兩個聲明,其實結果一樣,首先pid1和pid2都是指針, (*pid1)和(*pid2)都具有int屬性,所以兩個指針都是整型指針,有因為加了const屬性,所以(*pid1)這個整數不可以被修改。
這個就是常量指針。
在看看下面的聲明
[cpp]
int * const pid;
int * const pid;
首先pid是個指針,然後修飾pid的修飾符是const,所以pid的內容不可以修改,也就是說他只能被存放一次,而且是在聲明的時候初始化。
這個就是指針常量。
總結一下:
指針常量就是本身是常量的指針。
常量指針就是指向常量的指針。
其實明白了上面的解釋,大家就不必在意什麼常量指針,指針常量了。用對就可以了。。