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

为什么要定义为const int*p, 指针指向的是count地址,并不是count的值,为什么一定要用常量指针

//const

#include <iostream>

using namespace std;

int main(void)

{

    //定义常量count

    const int count = 3;

     const int * p =  &count;

    //打印count次字符串Hello C++

for(int i = 0; i < *p; i++)

{

cout << "Hello imooc" << endl;

return 0;

}


正在回答

3 回答

const int*p定义的是指向常量的指针;int * count p 定义的是常量指针。

可以理解为p是指向count地址的指针,而*p=count,因为count是一个常量,所以是*p为一个常量,故const在int*p前面修饰整个

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

iiiyyy 提问者

非常感谢!
2016-05-16 回复 有任何疑惑可以回复我~

指针类型与实际存储的匹配

    指针是有类型的,给指针赋值,不但必须是一个地址,而且应该是一个该指针类型相符的变量或常量的地址。

——C++程序设计教程(修订版) 钱能  P149页

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

你可以试一下 const int a =3; int *p =&a; 编译器会报错 const * 不能转成 int *, 这情况加上 const 似乎是为了解决这个问题吧。。

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

举报

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

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

进入课程

为什么要定义为const int*p, 指针指向的是count地址,并不是count的值,为什么一定要用常量指针

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