struct与typedef 结构体定义

结构体的基本定义方法有三种:

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;

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值