为了账号安全,请及时绑定邮箱和手机立即绑定

const int *p 与int const *p有什么区别

 const int*是不可变地址的指针



int const*是指向不可变整数的指针

这是什么意思

正在回答

3 回答

区别主要在于const位于*的前后

const位于*前,表示不能通过指针去改变该指针所指变量的值,但是可以用变量修改值,指针所指的变量也是可以改变的例如:

const int *p=&i; 

i=2;

这种写法是正确的;

*p=2;

这种写法是错误的;

修改指针所指变量的值,可以直接修改:

i=24;

const位于*后面,则指针一旦得到某个变量的地址,不能再指向其他的变量

0 回复 有任何疑惑可以回复我~

const int *p =&x;<==> int const *p=&x;

*p=4; (any value) --> this is wrong!!!

p=&y (any address) -->this is correct!!!

So, const is just for "*p", not "p" in this example.


0 回复 有任何疑惑可以回复我~
#1

慕的地9298213 提问者

接着你上面的代码,p = &y 之后,*p的值是不是就变成了y?那样不就和*p是const 矛盾了吗? 要不就是y 的值变成了*p ???
2018-07-20 回复 有任何疑惑可以回复我~

const int *p 与int const *p是一个意思啊,你要问的是const int *p和 int * const p吧

1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C++远征之离港篇
  • 参与学习       122700    人
  • 解答问题       474    个

C++扫清通往面向对象的最后一道障碍,将所有知识点融会贯通

进入课程

const int *p 与int const *p有什么区别

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信