在定義結構體的時候遇到了問題。
之前自己習慣這樣去聲明變量:
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依然是一個結構體類型,並不是變量