const int *p与int * const p的区别是
1.第一个声明的const属于声明说明符,它跟int一起,是用来说明*p这个声明符的,因此const修饰的是p所指向的那个对象,这个对象是 const的。(指向的值是只读数,不可修改,但可指向其他只读数)
2.而第二个声明的const是声明符的一部分,它修饰的对象是p(指针)本身,因此p是const的,也就是说此时不可以改变指针的指向。(一但指向一个地址,就不可指向其他地址, 此地址里面的值可修改)
对于 const int *p, 它本身和 int const *p 是一致的,即此时交换const和int的位置没有关系。
举例说明:
int a=5;
int b=6;
const int *p=a;
*p=6;//此处会编译报错,const指向的变量内容不可以改变
p=&b;//此处没有问题,指针可以改变其指向
*********************************************************
int a=59;
int b=6;
int *const p=a;
*p=6;//此处没有问题,因为此时p指向变量的内容可以改变
p=&b;//此处编译器会报错,指出不可以改变const指针的指向
3. const int *p const
表示一但指向一个地址,就不可指向其他地址,而且此地址里面的值不可修改
4. const int a 和 int const a意思一样,为只读数
const 相关说明
最新推荐文章于 2024-04-01 09:19:12 发布