在C中重新分配结构

时间:2012-04-24 12:44:36

标签: c

我是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;
}

1 个答案:

答案 0 :(得分:8)

不直接,但C99具有复合文字

bill = (Person){120,34};

你甚至可以通过使用指定的初始化程序(如

)来使事情更具可读性
bill = (Person){ .height = 120, .age = 34, };