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