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

猜你喜欢

转载自blog.csdn.net/qq_33301482/article/details/83307318