谁用最少的改动修正这个错误?

evel 2010-03-09 04:45:15
提示错误error C2065: 'p' : undeclared identifier

const int e=0; *p =&e;
...全文
95 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
柯本 2010-03-10
  • 打赏
  • 举报
回复
const int e=0, *p =e;
这个语法上没问题,定义一个指针,并初如化为0
相当于:
const int e=0;
const int *p=0;
对于#7楼说: const对于p有作用吗?
const对p无效,但对*p有效, p的值可以改,但*p(p指针所指向的内容)不可改。
cout << *p << endl;
这个会报错,但要看平台 ,它是访问地址为0的内容,在windows/linux等多数平台下,不可以,但在DOS或某些系统下,就可以
evel 2010-03-09
  • 打赏
  • 举报
回复
引用 9 楼 kevinz26 的回复:
引用 5 楼 evel 的回复:
而且 e加不加去地址都没有错。为什么???

你确定?


编译没问题,但是运行有问题。
kevinz26 2010-03-09
  • 打赏
  • 举报
回复
引用 5 楼 evel 的回复:
而且 e加不加去地址都没有错。为什么???


你确定?
evel 2010-03-09
  • 打赏
  • 举报
回复
三楼四楼的,这种改法没问题,但是输出有问题。为什么
cout << *p << endl;
evel 2010-03-09
  • 打赏
  • 举报
回复
引用 6 楼 keiy 的回复:
C/C++中,“,”号可以表示连续的定义,如:
int a,b,c,d;
且可直接初始化(注意,不是赋值)
如:
int a=10,b=2,c=3;


const对于p有作用吗?

而且 e加不加去地址都没有错。为什么???

加&表示获得e的值0;不加&表示获得地址。

柯本 2010-03-09
  • 打赏
  • 举报
回复
C/C++中,“,”号可以表示连续的定义,如:
int a,b,c,d;
且可直接初始化(注意,不是赋值)
如:
int a=10,b=2,c=3;


evel 2010-03-09
  • 打赏
  • 举报
回复
而且 e加不加去地址都没有错。为什么???
evel 2010-03-09
  • 打赏
  • 举报
回复
好,我的问题又来了。

const int e=0,  *p =e;


这里的指针p为什么不用int 来定义?
SiGoYi 2010-03-09
  • 打赏
  • 举报
回复

const int e=0;
const int *p =&e;
djlxue 2010-03-09
  • 打赏
  • 举报
回复
const int e=0; *p =&e; ->> const int e=0;
const int *p =&e;
柯本 2010-03-09
  • 打赏
  • 举报
回复
const int e=0, *p =&e;

65,210

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧