回答編集履歴
2
コメントでの指摘を受けて、sizeof の括弧の付けかたについて意味のある付け方をするようにした。
answer
CHANGED
@@ -1,16 +1,16 @@
|
|
1
1
|
> (unsigned)(sizeof n+2)
|
2
2
|
|
3
|
-
優先順位の関係でsizeof(n+2)とはならず、
|
3
|
+
優先順位の関係でsizeof(n+2)とはならず、( sizeof n ) + 2 となります。
|
4
|
-
|
4
|
+
( sizeof int ) + 2 で6になります。
|
5
5
|
|
6
6
|
> (unsigned)(sizeof (n+2))
|
7
7
|
|
8
|
-
「n+2」というint値のサイズを求めていて実質sizeof
|
8
|
+
「n+2」というint値のサイズを求めていて実質「sizeof int」と同じになり4になります。
|
9
9
|
|
10
10
|
|
11
11
|
> (unsigned)(sizeof (n+2,0))
|
12
12
|
|
13
|
-
「n+2,0」はカンマ演算子で右の式が値となるのでsizeof
|
13
|
+
「n+2,0」はカンマ演算子で右の式が値となるので「sizeof 0」 となり
|
14
|
-
実質sizeof
|
14
|
+
実質「sizeof int」と同じになり4になります。
|
15
15
|
|
16
|
-
※回答で示したサイズ値は
|
16
|
+
※回答で示したサイズ値は(sizeof int)==4の環境の場合です。
|
1
示したサイズ値はsizeof(int)==4の環境の場合であることを明記した。
answer
CHANGED
@@ -11,4 +11,6 @@
|
|
11
11
|
> (unsigned)(sizeof (n+2,0))
|
12
12
|
|
13
13
|
「n+2,0」はカンマ演算子で右の式が値となるのでsizeof(0)となり
|
14
|
-
実質sizeof(int)と同じになり4になります。
|
14
|
+
実質sizeof(int)と同じになり4になります。
|
15
|
+
|
16
|
+
※回答で示したサイズ値はsizeof(int)==4の環境の場合です。
|