#include <iostream>
using namespace std;
int main() {
cout<<(int *)16 - (int *)10 ;
return 0;
}
此代码部分产生输出 5,我无法理解输出?
最佳答案
对此进行合理化是没有意义的:您没有一个数组包含内存中位于 10
和 16
的元素。因此,减法运算是未定义的,任何事情都可能发生。
实际上,由于两个地址之间的差异[可能]不是sizeof(int)
的倍数,因此您的编译器似乎在畏缩并返回无意义的内容。
幸运的是,您永远没有理由在项目中编写此代码,因此这并不重要。
关于c++ - 这段代码如何打印5?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33321559/