C言語入門
C言語2 | C言語4
3.C言語3 (式)
  • 3.2:
    なぜ以下のコードはうまく動かないのか。
    a[i] = i++;


    3.2:
    私が使っているコンパイラでは以下のコードで49を出力する。

    int i = 7;
    printf("%d\n", i++ * i++);

    評価の順にかかわりなく、56を出力するのではないのか?


    3.3:
    以下のコードをいくつかのコンパイラでコンパイルして実験してみた。

    int i = 3;
    i = i++;

    iの値として、3を与えるもの4を与えるもの7を与えるものがあった。
    上のコードの振る舞いは未定義であるのは知っている。しかしどうし
    て7になるようなことがあるのか?


    3.14:
    なぜ以下のコードは私が思った通りに動かないのか?


    int a = 1000, b = 1000;
    long int c = a * b;


    3.16:
    条件によって、二つの変数のどちらかに代入する複雑な式がある。以
    下のようなコードを使ってもよいか?

    ((condition) ? a : b) = complicated_expression;


    <次回は「C言語4」です。>
  
C言語2 | C言語4