const int *pi,int * const pi,const int * const pi的講解
阿新 • • 發佈:2018-11-12
1.const int n=10;
n=20;//error
2.const int *pi;
int n=10,n=20;
pi==&n;
pi=&m;
m=30;
printf("pi=%d",*pi); //pi=30
pi的值可以被修改,可以重新指向另一個地址。const修飾的是*pi,是一個常量,不能被修改
3.int * const pi;
int n=10,n=20;
pi==&n;
//pi=&m; //不能再這樣重新賦值
n=30;
printf("pi=%d",*pi); //pi=30
pi有了const修飾之後,是一個指標常量,不能再重新指向另一個變數
*pi是變數,可以通過*pi來修改它所指向的指標記憶體的值
4.int *pi 指向const int i 的情況
const int i=20;
int *pi;
pi=&i// error
pi=(int *)&i;//不能通過*pi來修改i的值
5.const int *pi指標指向const int i的情況
const int i=20;
const int *pi;
pi=&i;//兩個型別相同,i的值無論通過pi和i都不能修改
6.const int * const pi
int i;
const int* const pi=π//pi的值不能改也不能通過pi來修改i的值