结构体的基本定义方法有三种:
struct 结构体名 变量名;
struct 结构体名 变量名 = { 成员1值, 成员2值... };
定义结构体时顺便创建变量;
这三种的具体代码如下:
/* ------------------ 1.struct 结构体名 变量名; 之后进行赋值操作 ------------------ */
struct Student
{
// 成员列表
string name; // 姓名
int age; // 年龄
int score; // 分数
};
int main() {
//struct Student xiaoMing;
Student xiaoMing; // struct关键字可以省略
xiaoMing.name = "小明";
xiaoMing.age = 18;
xiaoMing.score = 96;
xiaoMing = { "小明", 18, 96 };
cout << "姓名:" << xiaoMing.name << " 年龄:" << xiaoMing.age << " 分数:" << xiaoMing.score << endl;
system("pause");
return 0;
}
/* -------------- 2.struct 结构体名 变量名 = { 成员1值, 成员2值... }; -------------- */
struct Student
{
// 成员列表
string name; // 姓名
int age; // 年龄
int score; // 分数
};
int main() {
Student xiaoMing = {"小明", 18, 96};
cout << "姓名:" << xiaoMing.name << " 年龄:" << xiaoMing.age << " 分数:" << xiaoMing.score << endl;
system("pause");
return 0;
}
/* -------------------- 3.定义结构体时顺便创建变量; -------------------- */
struct Student
{
// 成员列表
string name; // 姓名
int age; // 年龄
int score; // 分数
}xiaoMing;
int main() {
xiaoMing.name = "小明";
xiaoMing.age = 18;
xiaoMing.score = 96;
xiaoMing = { "小明", 18, 96 };
cout << "姓名:" << xiaoMing.name << " 年龄:" << xiaoMing.age << " 分数:" << xiaoMing.score << endl;
system("pause");
return 0;
}
-----------------------------------------------------------------------------------
姓名:小明 年龄:18 分数:96
请按任意键继续. . .
其中,第三种方式 - 3.定义结构体时顺便创建变量;,在创建单个结构体时较为方便。
而创建多个结构体时,显得倒不如以上两种来的直观。
于是使用第3种方法创建多个结构体时,通常会使用上 typedef。
使用 typedef 定义 struct 结构体:
typedef struct Student
{
// 成员列表
string name; // 姓名
int age; // 年龄
int score; // 分数
}Stu;
// 这里相当于使用 typedef,将整个结构体起了个叫为 Stu 的别名。
int main() {
Stu xiaoMing, xiaoHong, xiaoLiang;
xiaoMing = { "小明", 18, 96 };
xiaoHong = { "小红", 20, 100 };
xiaoLiang = { "小亮", 21, 98 };
cout << "姓名:" << xiaoMing.name << " 年龄:" << xiaoMing.age << " 分数:" << xiaoMing.score << endl;
cout << "姓名:" << xiaoHong.name << " 年龄:" << xiaoHong.age << " 分数:" << xiaoHong.score << endl;
cout << "姓名:" << xiaoLiang.name << " 年龄:" << xiaoLiang.age << " 分数:" << xiaoLiang.score << endl;
system("pause");
return 0;
}
--------------------------------------------------------------------------------------
姓名:小明 年龄:18 分数:96
姓名:小红 年龄:20 分数:100
姓名:小亮 年龄:21 分数:98
请按任意键继续. . .
在上面代码中,相当于使用 typedef,将整个 Student结构体起了个叫为 Stu 的别名,方便书写与记忆。
而实例化时,本质还是使用的第三种定义方式 - 3.定义结构体时顺便创建变量;
typedef struct Student
{
// 成员列表
string name; // 姓名
int age; // 年龄
int score; // 分数
}Stu;
Stu xiaoMing, xiaoHong, xiaoLiang;