这段代码是如何打印5的?
How does this code section print 5?
#include <iostream>
using namespace std;
int main() {
cout<<(int *)16 - (int *)10 ;
return 0;
}
这段代码产生一个输出5,我不能理解输出?
对此进行合理化是没有意义的:您没有一个包含位于内存中的10
和16
的元素的数组。因此,减法操作是未定义的,任何情况都可能发生。
实际上,由于两个地址之间的差异[可能]不是sizeof(int)
的倍数,您的编译器似乎在退缩并返回卑鄙的废话。
幸运的是,您从来没有理由在您的项目中编写此代码,因此这无关紧要。
相关文章:
- 如何循环打印顶点结构
- 为什么在popback()操作之后,它仍然打印完整的矢量
- 如何在c++中打印目录
- 有一个打印语句的函数是一种糟糕的编程实践吗
- 在线编译器中的分段C++没有打印消息
- 在C++中打印指向不同基元数据类型的指针的内存地址
- 这个指针和内存代码打印是什么?我不知道是打印垃圾还是如何打印我需要的值
- 如何将结构插入到集合中并打印集合的成员
- 在循环C++中指定字符串之后,不会打印该字符串
- 如何使用重新定义的打印函数打印Lua表?
- 在 POS 打印机上打印条形码字体
- 视觉打印没有打印任何输出内容?C++ SDL
- 打印,打印到MAC OS X上
- 为类打印输出(打印调试信息)的最佳实践是什么?
- QWebView不在实际打印机上打印多页
- 有没有办法创建一个公共输出流对象以在控制台上打印并打印到 c++ 中的文件
- 防止在打印C++打印中打印标志
- <string> 当我得到一个'compilr.com/rayd360/test-songst'时如何打印出打印矢量
- 在打印机上打印(windows平台32位)
- 流可以用来在打印机上打印