- 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; }