#include <iostream>
using namespace std;
int main() {
cout<<(int *)16 - (int *)10 ;
return 0;
}
此代码部分产生输出5,我无法理解输出?
答案 0 :(得分:5)
对此进行合理化是没有意义的:您没有包含内存中10
和16
的元素的数组。因此,减法操作是不确定的,任何事情都可能发生。
实际上,由于两个地址之间的差异[可能]不是sizeof(int)
的倍数,因此您的编译器似乎正在喋喋不休并返回一些废话。
幸运的是,你没有理由在你的项目中编写这段代码,所以没关系。