3

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」が増加しないのはなぜですか? ここでスペースは重要ですか、それとも何ですか? 出力の説明を求めていますか?

4

2 に答える 2

7

+ + aは、単項演算子が 2 回適用されたものとして解析される+ため、値は変更されません。

+(+a)コンパイラが見たもので、この場合はちょうど 0 です

于 2013-06-18T20:56:09.150 に答える
6

ここでは両方のプラスが単項演算子として機能していると思います。「+ と - の両方が単項演算子として機能するため」なので、ここでは「a」には影響しません。0のままです。

++aの場合; これはプレフィックスインクリメント演算子であり、「a」は1になります。

于 2013-06-18T20:56:19.607 に答える