const 相关说明

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意思一样,为只读数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值