[前頁] [次頁] [目次]


    H 演算の結果引き起こされる通常の算術変換については、float, double への変換が無いだけで、一般的なものと同じ変換がされます.なお、ポインタは、基本的に符号無し整数で扱われます.

    I 論理演算では、フルセット C と同じく、左側の式の結果によっては右側の式の評価はされません.

    J p[] で宣言されたものは、*p と宣言されたものと同じであり、p への代人演算はゆるされます.

      int p[];int p[20];
      p = 0x2000;p = 0x2000;
      (エラーとならない)(左辺値エラーとなる)

    K 宣言されていない関数が現れた時は、型が int であるものとしてコンパイルします.

    L 関数の引数は、右側から左に向かって評価します.
     コンパイラの本処理において、処理が簡単になるよう関数の引数列は1 行以内に記述されてあるものとの前提条件を設けています.このため、引数列は、必ず一行に納めてください.

    M 配列等の添字付き演算では、それらは、ポインタ演算に置き換えてコンパイルしていますので、次のように変則的な記述をしても正しくコンパイルされます.

      < 通常の記述 >  < 変則記述 >
      a[x];x[a];
      b[y][z];  y[b][z]; z[y[b]];

    N C では、ポインタ演算と配列の添字演算は同じものですから、次の、記述 a、記述 b の表現はまったく同じとなります.

      < 記述 a >< 記述 b >
      c = *(a[2]+3);  c = (*(a+2))[3];

    O 多次元配列においては、代入が許されるのは最終の添字計算をされたオブジェクトのみで、それ以前は次に続く配列のアドレスであり、代人は許されません.

      char a[10][20][30];

      a = 10;     ------- エラーとなる
      a[x] = 20;    -------  同上
      a[x][y] = 30; -------  同上
      a[x][y][z] = 40; ------- エラーでない

    P 定数式の記述は、整数定数、文字定数、sizeof 式による四則演算等で構成されますが、論理演算式、条件式による記述はできません.


[前頁] [次頁] [目次]