本C程序的说明

时间:2013-06-18 20:54:05

标签: c

考虑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”没有增加为什么?空间在这里还是什么重要? 我要求输出说明?

2 个答案:

答案 0 :(得分:7)

+ + a被解析为应用两次的一元+运算符,因此值保持不变。

+(+a)是编译器看到的,在这种情况下只是0

答案 1 :(得分:6)

我认为这两个加号在这里都是一元运算符。 “既然+和 - 都可以作为一元运算符。”所以这里对“a”没有影响。它仍然是0。

如果++ a;那么这是前缀增量运算符,“a”将变为1。