看完后隐藏功能和C++/STL的暗角上comp.lang.c++.moderated,我完全惊讶的是,下面的代码片断编译并在两个Visual Studio 2008和G ++ 4.4的工作.
这是代码:
#include <stdio.h>
int main()
{
int x = 10;
while (x --> 0) // x goes to 0
{
printf("%d ", x);
}
}
Run Code Online (Sandbox Code Playgroud)
我假设这是C,因为它也适用于GCC.标准中定义了哪里,它来自何处?
我有以下代码:
public class Operators {
public static void main(String[] args) {
int i =+ 2;
System.out.println(i);
}
}
Run Code Online (Sandbox Code Playgroud)
执行后,我得到以下输出:2
那么=+运营商在这里做了什么呢?
编辑:
正如一些回答,这是分配+2到i,考虑下面的代码:
public class Operators {
public static void main(String[] args) {
int i =- -2;
System.out.println(i);
}
}
Run Code Online (Sandbox Code Playgroud)
所以在上面的例子中,输出应该是-2.但我得到了2
所以我想,它是-(-2),它给出了2.对吗?