結構體定義的問題

在定義結構體的時候遇到了問題。

之前自己習慣這樣去聲明變量:

typedef struct {
    string name;
    string gender;
    string id;
    int grade;
}student;

student stu[100];

這裏其實student 是結構體的類型,還不是變量,真正的變量是stu,加typedef 爲類型取了一個別名爲student。
如果不用typedef,定義爲:

struct {
    string name;
    string gender;
    string id;
    int grade;
}student;

那麼定義變量的時候就要:struct student stu[100];

還有一種比較好的寫法:類型和變量都在一開始就定義了:

struct student {
    string name;
    string gender;
    string id;
    int grade;
}stu[100];

這樣定義的也是一個結構體數組變量,但是重新定義結構體變量時候也要寫完整。.
eg:struct student stu1;

還有一種錯誤寫法:

typedef struct student {
    string name;
    string gender;
    string id;
    int grade;
}stu[100];```

這裏stu依然是一個結構體類型,並不是變量
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章