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

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/14 01:26:46
关于C++ int a[5]={0},*p,*q; p=a; q=a; 合法的运算 p+q; p*q; p-q; p%q; 为什么只有p-q是合法的啊?

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

关于C++ int a[5]={0},*p,*q; p=a; q=a; 合法的运算 p+q; p*q; p-q; p%q; 为什么只有p-q是合法的啊?
合法 与 不合法 是编译器 对 程序语句 的 基本检测
在C里 这几句 都 合法
在 高级语言里,为了帮助程序员检测 出 程序 中 更多的 错误,加入了 更多的 检测
这些 检测 是不是 需要执行,大多数 编译器里能设置.
p+q; p*q; p%q; 对于 程序员来说 ,这几个 指针运算 没有 任何意义,所以 就被你 的 编译器 认为 有错 ,而且 p+q; p*q 这两个 大多数时候 会造成指针 超出 定义变量 范围,造成不可想象的 后果,加入这项 检测 是很有 必要的.
p-q 在 实际 中 有很大的 用途 ,所以 编译器 不能报错