- const int *p:*p是常量
- int * const p:p是常量
注意:const和int的位置可以互换
#include <iostream>void test1(){int i1 = 30;int i2 = 40;/**1、首先const修饰的是整个*pi,所以*pi是常量* 2、其次,pi前并没有const修饰,所以pi是指针变量,能被重新指向另一个内存地址* */const int *pi = &i1;//1、不可//*pi = i2;//2、可pi = &i2;//可i2 = 80;printf("%d/n", *pi);
}void test2(){int i1 = 30;int i2 = 40;/*** 1、pi有const修饰,所以只是一个指针常量;也就是说pi的值不可以修改* 2、*pi的前面没有const的修饰,也就是说,*pi是变量而不是常量* 总结:这次的pi是一个指向int变量类型数据的指针常量* */int *const pi = &i1;//1、不可//pi = &i2;i1 = 80;//2、可*pi = 160;printf("%d/n", *pi);//int const * const p = &i1;
}int main() {///const int 和 int const是一样的,两个顺序可以颠倒///但是const int *pi 和 int *const pi是不一样的test1();test2();return 0;
}