关于C++ int a[5]={0}, *p, *q; p=a; q=a; 合法的运算 p+q; p*q; p-q; p%q; 为什么只有p-q是合法的啊??

 我来答
百度网友7f4f28558
2012-03-10 · TA获得超过272个赞
知道小有建树答主
回答量:489
采纳率:0%
帮助的人:257万
展开全部
合法 与 不合法 是编译器 对 程序语句 的 基本检测
在C里 这几句 都 合法
在 高级语言里, 为了帮助程序员检测 出 程序 中 更多的 错误,加入了 更多的 检测
这些 检测 是不是 需要执行, 大多数 编译器里能设置。。
p+q; p*q; p%q; 对于 程序员来说 ,这几个 指针运算 没有 任何意义,所以 就被你 的 编译器 认为 有错 ,而且 p+q; p*q 这两个 大多数时候 会造成指针 超出 定义变量 范围, 造成不可想象的 后果, 加入这项 检测 是很有 必要的。
p-q 在 实际 中 有很大的 用途 ,所以 编译器 不能报错
sgxwxlq
2012-03-10 · TA获得超过219个赞
知道小有建树答主
回答量:382
采纳率:0%
帮助的人:256万
展开全部
因为p,q都是指针,里面存放的都是地址,并不是值,所以不可以跟值一样有那么多运算的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式