#include <stdio.h>
int main()
{
int i;
i = 10;
printf("%d
", i);
printf("%d
", sizeof(i++));
printf("%d
", i);
return 0;
}
この3行の出力は何ですか?10410の第三のはなぜ11ではないですか?iなぜ自増していないですか?C++標準を見てください5.3.3 sizoff The size of operator yields the number of bytes in the object representation of its operand.The operand.The operand is ether an exprestion,which is an unevaluated operand(Clause 5)は、or parensized-inzed-inzed-inpetyは、この式では計算されません。sizeofは前処理して見ればいいです。後ろの括弧の中のものは、まったく値を求めないで、Cの規則の積み重ねだけで結果の種類を判断して、結果のタイプの大きさを返します。他の操作子typeidも同じです。