【发布时间】:2013-07-03 09:00:59
【问题描述】:
在下面的程序中,输出总是为零,还是未定义的行为?
#include<iostream>
int main()
{
int i= i ^ i ;
std::cout << "i = " << i << std::endl;
}
使用 gcc 4.8.0 编译成功,输出为 0。
【问题讨论】:
-
按位
XOR,正确。 -
@KarolyHorvath 好吧,与其说是一百万个“为什么我Facebook 没有在 jQuery 中绘制 OpenGL?”-问题。如果您觉得您不需要了解编程语言的内部工作原理,请随意发布 “这是 XOR,它还能做什么,愚蠢!”-答案。
-
这是一个荒谬的问题,完全知道它是未定义的行为,但没有应用任何细节,例如哪个操作系统,哪个编译器,或者它将为哪个架构编译。
-
@PP。我想知道你从哪里得到的印象是 OP 知道这是未定义的行为。
标签: c++ language-lawyer