0

次のような構造体があるとします。

struct Point {
    int x, y;
};

Point 型の構造体変数が必要な場合は、次のようにします。

struct Point p1 = {5, 5};

これはうまくいきます。ただし、次のような構造体変数も作成できることがわかりました。

struct Point {
    int x, y;
} p2;

次のように、構造体変数に値を代入しようとするとp2、次のようになります。

p2 = {6, 6};

エラーが発生します。なぜそうなのですか?

4

4 に答える 4

0

struct Point p1 = {5, 5};p1角括弧内の指定された値に割り当てられた変数を作成します。asp2 = {6, 6};は上記のケースと似ていますが、意味を持たない LHS への単なる代入式です。

ただし、C99では、p2 = (struct Point) {6, 6};これにより RHS が有効な式の割り当てになります。

于 2013-11-06T17:47:58.613 に答える