
struct与typedef 结构体定义
发布日期:2021-05-07 13:31:51
浏览次数:22
分类:原创文章
本文共 2445 字,大约阅读时间需要 8 分钟。
结构体的基本定义方法有三种:
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;
发表评论
最新留言
网站不错 人气很旺了 加油
[***.192.178.218]2025年04月04日 08时15分35秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
数字化助力金融科技,实现产业良性循环
2019-03-04
2020-11-23(彻底理解KMP)
2019-03-04
常用的IDC函数
2019-03-04
BUUCTF 新年快乐 内涵的软件 Java逆向解密 刮开有奖
2019-03-04
angr学习笔记(7)(malloc地址单元符号化)
2019-03-04
angr学习笔记(9)(添加约束)
2019-03-04
angr学习笔记(13)(static_binary)
2019-03-04
windows环境利用start命令实现微信多开
2019-03-04
「CF149D」括号涂色 区间DP好题
2019-03-04
树状数组 模板总结
2019-03-04
「NOI2015」程序自动分析 并查集题解
2019-03-04
[JSOI2008]Blue Mary的战役地图 Hash题解
2019-03-04
Ubuntu修改终端上显示的用户名和主机名(详细步骤)
2019-03-04
教你写一手漂亮的伪代码(详细规则&简单实例)
2019-03-04
结构型设计在工作中的一些经验总结
2019-03-04
如何提升员工体验 助力企业业务增长?这个棘手的问题终于被解决了!
2019-03-04
全球首个!阿里云开源批流一体机器学习平台Alink……
2019-03-04
红点中国、红杉中国联合领投,WakeData惟客数据完成1000万美元B轮融资
2019-03-04
OpenStack发布Ussuri版本 实现智能开源基础设施的自动化
2019-03-04
2020 AI 产业图谱启动,勾勒中国 AI 技术与行业生态
2019-03-04