sizeofの使い方に関するテーマを解析します。



  #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も同じです。