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

关于const与指针类型

  //定义常量count

    const int count = 3;

    const int *p =  &count;

在第一道练习中不是说指针指向const修饰的变量时是这样吗 const int const *p=&a,可是为什么在做上面练习时,我写成const int const*p=&count 它说有重复呢,改成上面那样就是对的

正在回答

2 回答

第一道练习中的写法是 const int* const p = &a; 注意第二个const的位置在 * 之后,修饰的是指针p本身,意思是一个指向常量的常量指针。而写成const int const *p=&a 是错误的,因为 * 之前的都是修饰指针指向的对象,相当于 const const int *p,这样就重复了。而在这一道练习题中,p指向的对象是常量,所以 * 之前要加const,但是指针 p 本身可以是常量,也可以是变量,所以 * 之后可以不用加const。

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

慕斯卡1160282

我也觉得第一道题的答案有些绝对,没有必要非要2个const, int const *p=a;或const int *p=a;就可以了,是否是常指针都可以。
2016-11-17 回复 有任何疑惑可以回复我~

const int *p; int const *p;两者是一样的,表示*p是常量

int * const p;也是可以的,表示p是常量

显然你的表达方式是不正确的。

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

举报

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

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

进入课程

关于const与指针类型

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