- const int *p:*p是常量
- int * const p:p是常量
注意:const和int的位置可以互换
cpp
#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;
}