宣言してもfloat a=5.6
出力printf("%d",sizeof(!a))
します2
。整数のサイズを出力するのはなぜですか?
質問する
1393 次
4 に答える
10
演算子は!
整数型を返しますint
。sizeof(int) == 2
どうやらあなたのアーキテクチャに。
于 2013-06-30T10:03:41.267 に答える
3
演算子はオペランドの!
型を返しません。に対して NOT を実行するとfloat
、返されませんfloat
。int
初期の の論理的に反対の値を持つを取得しfloat
ます。
于 2013-06-30T10:05:39.070 に答える
2
https://stackoverflow.com/a/9833830/1787973によると、!E
と同等で0==E
あり、結果として、タイプint
です。
論理否定演算子 ! の結果 オペランドの値が 0 と等しくない場合は 0、オペランドの値が 0 と等しい場合は 1 です。結果の型は int です。式 !E は (0==E) と同等です。
sizeof(int)
16ビットアーキテクチャでは2であり、コンピューターでsizeof(!a)
出力2
される理由を説明しています。
于 2013-06-30T10:29:16.517 に答える
-1
これは役に立ちます。
void main(){
int x = !4.3;
printf("%d",x);//This will print 0
printf("%d",sizeof(0));//This will print 2
printf("%d",sizeof(!4.3));//Will print 2
}
!4.3
0 が返されることがわかります。したがってsizeof(!4.3)
= sizeof(0)
= 2
(0 は整数であるため) sizeof(!4.3)
2 になります。
于 2013-06-30T10:05:35.210 に答える