常量指针和指针常量的区别
【const】:常量
【 *
区分这两者的关系有一个简单的办法,就是看const和*的顺序,如果const在*前面,那么就是常量指针,反之就是指针常量。例如【const int* p】,const在*前,所以这是个常量指针。
常量指针
顾名思义,就是指向常量的指针,无法通过*p的方式修改变量的值,例子如下:
指针常量
顾名思义,指针常量就是指针本身就是一个常量,定义的时候必须赋值初始化,无法改变本身所指向的对象,例子如下:
双从const限定
在C语言中,某些编译器会报重复定义的警告,这种用法一般是在C++中。解析该语句可以从由往左,可以拆分为两部分:
第一部分:【const p】,标记为负号X
第二部分:【const int*】
简化一下就是:const int* X
第一部分其实就是表示的一个常量,表示p是无法被改变的,而因为这是指针类型,那么就说明p是无法被改变所指引的对象的;第二部分就是一个常量指针,表示p是一个常量指针,无法通过*p改变所指引对象的值。例子: