4

私はCに不慣れで、構造体を試しています。構造体を作成した後、中括弧で再割り当てすることはできますか?

typedef struct {
    int height;
    int age;
} Person;

int main (void)
{
    Person bill = {100,35};
    bill = {120,34}; // error: expected expression before ‘{’ token
    bill = Person {120,34}; // error: expected expression before ‘Person’

    return 0;
}
4

1 に答える 1

9

直接ではありませんが、C99にはそのための複合リテラルがあります

bill = (Person){120,34};

次のような指定された初期化子を使用することで、より読みやすいことを行うこともできます。

bill = (Person){ .height = 120, .age = 34, };
于 2012-04-24T12:48:22.833 に答える