一、int *const p1;
表示常量指针,必须在定义时初始化,而且初始化后不能改变指向,但可以通过该指针修改内存里面的数据。
1.必须在定义时初始化
2.不能改变指向
3.可以通过该指针修改内存里面的数据。
二、int const *p2
表示指向常量的指针,不是必须初始化,能改变指向,但是不能通过其修改内存里面的数据。可以通过原来的变量修改内存的数据。
1.不是必须初始化
2.能改变指向,但不能修改内存所指向的内存里面的数据
3.可以通过原来的变量修改内存的数据
4.还可以这样修改数据
三、const int *p3
跟第二种情况一样:
四、const int* const p4
第一种情况和第二种情况的结合。
五、const int const *p5
跟第二种情况一样。
总结
如果在定义的时候,如果用到const关键字且变量名前面有“*”,那这个变量就是指向常量的指针,不能通过该指针修改内存里面的内容,但能改变指向。如果const前面带"*",那就表示常量指针,不能改变指向。