看书时遇到的const疑问
我想问一下const int *p=&a和int const *p=&a 两者有什么区别?难道也可以修改指针指向的类型?比如将int类型修改为其他类型?
----------------解决方案--------------------------------------------------------
貌似没有什么区别.
----------------解决方案--------------------------------------------------------
没有区别
----------------解决方案--------------------------------------------------------
const的引入主要为了程序的健壮性,减少程序出错。
const放在*左侧修饰的是指针的内容,const放在*右侧修饰的是指针
----------------解决方案--------------------------------------------------------
如楼上所说,const修饰指针时,在*号的左边或者右边有区别的,而楼主的两句都是在左边,这样表示指针指向的位置不允许修改
----------------解决方案--------------------------------------------------------
有区别!!
----------------解决方案--------------------------------------------------------
应该没区别吧,楼上能不能说说有什么区别
----------------解决方案--------------------------------------------------------
肯定有区别的...
const int *p=&a; 说明指针p是个int型的常量指针,p是不能做左值的,这和数组名为什么不能++,--的原因一样,要想修改p所指地址内容,可以通过修改变量a的值.
int const *p=&a ; 这个说名指针p所指的是一个常量,所以*p是不能做为左值的,但p指针是可以改变所指的地址的
----------------解决方案--------------------------------------------------------