考虑64位
#include<stdio.h>
int main()
{
unsigned a=0xffffffff;
a=~a;
printf("%u\n",a);
printf("%x\n",+ + a);
return 0;
}
OUTPUT:
0
0
在服用~a之后,a现在为0.但在语句“+ + a”中。 “a”没有增加为什么?空间在这里还是什么重要? 我要求输出说明?
答案 0 :(得分:7)
+ + a
被解析为应用两次的一元+
运算符,因此值保持不变。
+(+a)
是编译器看到的,在这种情况下只是0
答案 1 :(得分:6)
我认为这两个加号在这里都是一元运算符。 “既然+和 - 都可以作为一元运算符。”所以这里对“a”没有影响。它仍然是0。
如果++ a;那么这是前缀增量运算符,“a”将变为1。