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 回答