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

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;

struct与typedef 结构体定义相关推荐

  1. c语言结构体定义和使用typedef,结构体定义typedef struct 用法详解

    typedef是类型定义的意思,typedef struct是为了使用这个结构体方便. 在了解typedef之前我们先来了解一下什么是结构体类型: C++提供了许多种基本的数据类型(如int.floa ...

  2. c语言用typedef定义结构体,C语言结构体定义 typedef struct

    c语言规范,定义结构体: typedef struct ANSWER_HEADER { u8 u8Type; u8 u8Code; u32 u32TimeStamp; struct ANSWER_HE ...

  3. 结构体定义 typedef struct 用法详解和用法小结

    typedef是类型定义的意思.typedef struct 是为了使用这个结构体方便. 具体区别在于:  若struct node{ }这样来定义结构体的话.在定义 node 的结构体变量时,需要这 ...

  4. 【C语言】结构体定义 typedef struct 用法详解和用法小结

    结构体定义 typedef struct 用法详解和用法小结 文章目录 结构体定义 typedef struct 用法详解和用法小结 0. 前言 1. 首先:在C中定义一个结构体类型要用typedef ...

  5. C/C++中struct结构体定义变量的3种方法及初始化

    本博客整理自http://blog.csdn.net/zunfo/article/details/51494631 1.struct结构体定义 1.1.先定义结构体,然后再定义结构体变量 struct ...

  6. c语言结构体定义蚂蚁,C语言结构体(struct)常见使用方法

    C语言结构体(struct)常见使用方法 C语言结构体(struct)常见使用方法 基本定义:结构体,通俗讲就像是打包封装,把一些有共同特征(比如同属于某一类事物的属性,往往是某种业务相关属性的聚合) ...

  7. C++ 线性表的结构体定义(顺序表和链式表)

    线性表的结构体定义: 1.顺序表的结构体定义 typedef struct {int data[maxSize];int length;} Sqlist; 2.单链表结点的结构体定义 typedef ...

  8. RadarApp结构体定义

    消息结构体定义及说明 数据类型 一.帧类型定义 1.1 控制帧 1.1.1 控制帧帧头定义 1.1.2 控制帧类型(ucDataType) 1.2 数据帧类型 1.2.1 数据帧帧头定义 1.2.2 ...

  9. C语言之玩转结构体1——结构体定义与声明

    文章目录 一.前言 二.名词解释 三.结构体声明 四.结构体定义及初始化 五.运行 六.结语 一.前言 结构体作为C语言中的重要一环,可以用它来对数据进行封装,把一些相似的成员放在同一个结构体中,其对 ...

最新文章

  1. mongo 脚本对应的C#实现方式(待整理)
  2. BZOJ 1874: [BeiJing2009 WinterCamp]取石子游戏(SG函数)
  3. Ardino基础教程 13_温度传感器
  4. 由歌词引发的模式思考之下篇(模拟Spring的BeanFactory)
  5. 使用WebRTC开发Android Messenger:第3部分
  6. Flink SQL CDC 上线!我们总结了 13 条生产实践经验
  7. Eclipse里不能调试J2ME程序的解决办法
  8. 【webpack系列】从零搭建 webpack4+react 脚手架(四)
  9. autowired注入jar中的依赖_springboot项目中调用jar包中的类时报错 — 没有注入类
  10. example 排序_个性化推荐系统源代码之基于 WideDeep模型的在线排序
  11. B. 基本概念:类和对象
  12. 【机器学习-西瓜书】四、决策树:信息熵;信息增益;增益率;ID3;C4.5
  13. OPPO 推出 10 亿引力计划,全力构建智能化服务生态
  14. 车牌识别LPR(八)-- 字符识别
  15. vs+qt 人脸识别GUI
  16. 2021年信息系统监理师考试大纲
  17. 三人表决器逻辑表达式与非_正则表达式 - 驰念
  18. html5 跨平台播放器,开源ckplayer 网页播放器, 跨平台(html5, mobile),flv, f4v, mp4, rt...
  19. 三面字节跳动被虐得“体无完肤”,15天读完这份pdf,终拿下美团研发岗offer
  20. int型整数的最小值和最大值是多少(精确值)

热门文章

  1. [Lintcode]102. Linked List Cycle/[Leetcode]
  2. 设计模式:单例模式7种写法
  3. Android日期格式化
  4. 饭团(0):提升效率的开发工具
  5. JFreeChart画折线图
  6. [POJ1469 COURSES]
  7. 【ElasticSearch 学习笔记】Java API
  8. 520晚上,我用python破解了前女友的加密文件,结果却发现。。。
  9. Linux下服务器搭建(2)——linux搭建svn服务器详细过程 及 使用TortoiseSVN客户端连接服务器
  10. python进阶16多继承与Mixin