1. 程式人生 > >const int *pi,int * const pi,const int * const pi的講解

const int *pi,int * const pi,const int * const pi的講解

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的值