关于C++ int a[5]={0},*p,*q; p=a; q=a; 合法的运算 p+q; p*q; p-q; p%q; 为什么只有p-q是合法的啊?
来源:学生作业帮助网 编辑:作业帮 时间:2024/06/27 20:38:23
![关于C++ int a[5]={0},*p,*q; p=a; q=a; 合法的运算 p+q; p*q; p-q; p%q; 为什么只有p-q是合法的啊?](/uploads/image/z/11697479-71-9.jpg?t=%E5%85%B3%E4%BA%8EC%2B%2B+int+a%5B5%5D%3D%7B0%7D%2C%2Ap%2C%2Aq%3B+p%3Da%3B+q%3Da%3B+%E5%90%88%E6%B3%95%E7%9A%84%E8%BF%90%E7%AE%97+p%2Bq%3B+p%2Aq%3B+p-q%3B+p%25q%3B+%E4%B8%BA%E4%BB%80%E4%B9%88%E5%8F%AA%E6%9C%89p-q%E6%98%AF%E5%90%88%E6%B3%95%E7%9A%84%E5%95%8A%3F)
关于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 在 实际 中 有很大的 用途 ,所以 编译器 不能报错