
关于C++ int a[5]={0}, *p, *q; p=a; q=a; 合法的运算 p+q; p*q; p-q; p%q; 为什么只有p-q是合法的啊??
2个回答
展开全部
合法 与 不合法 是编译器 对 程序语句 的 基本检测
在C里 这几句 都 合法
在 高级语言里, 为了帮助程序员检测 出 程序 中 更多的 错误,加入了 更多的 检测
这些 检测 是不是 需要执行, 大多数 编译器里能设置。。
p+q; p*q; p%q; 对于 程序员来说 ,这几个 指针运算 没有 任何意义,所以 就被你 的 编译器 认为 有错 ,而且 p+q; p*q 这两个 大多数时候 会造成指针 超出 定义变量 范围, 造成不可想象的 后果, 加入这项 检测 是很有 必要的。
p-q 在 实际 中 有很大的 用途 ,所以 编译器 不能报错
在C里 这几句 都 合法
在 高级语言里, 为了帮助程序员检测 出 程序 中 更多的 错误,加入了 更多的 检测
这些 检测 是不是 需要执行, 大多数 编译器里能设置。。
p+q; p*q; p%q; 对于 程序员来说 ,这几个 指针运算 没有 任何意义,所以 就被你 的 编译器 认为 有错 ,而且 p+q; p*q 这两个 大多数时候 会造成指针 超出 定义变量 范围, 造成不可想象的 后果, 加入这项 检测 是很有 必要的。
p-q 在 实际 中 有很大的 用途 ,所以 编译器 不能报错
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询