原来一直认为结构体定义只有struct开头的方法。今天看一本书突然看到typedef struct开头的结构体定义方式吧自己搞的一脸懵逼。既然如此那就看看吧!!

先来看看C语言中的结构体变量的三种方法:

1、先定义结构体类型,再定义变量

注:注意在C语言中定义结构体变量的时候是struct student打头的。

struct student{ int num;char  name[20];char sex;int age;
};
struct student   stu1,stu2;

2、结构体类型和结构体变量同时定义

struct student{ int num;char  name[20];char sex;int age;
}stu1,stu2;

3、直接定义结构体类型变量(这个以前还真没留意)

struct
{ int num;char  name[20];char sex;int age;
}stu1,stu2; 

其实上面第一种方法我个人用的最多。

但是,每一次定义变量的时候都要写struct感觉怪怪的。C语言提供了一种简便些的方式——typedef。

typedef struct student{ int num;char  name[20];char sex;int age;
}Stu;
Stu stu1,stu2;  

也就是说:对C语言来说上述的使用typedef定义结构体的方式中Stu相当于struct student的一个别名。即Stu=struct student。

C++语言中的结构体变量:

在C++中一切都是最简捷的方式(果然是语言的进步呀!!):

struct student{ int num;char  name[20];char sex;int age;
};
student   stu1,stu2;

但是,如果我也加上typedef会怎么样呢?答案如下:

struct student{ int num;char  name[20];char sex;int age;
}stu1; //stu1是一个结构体变量typedef struct student{ int num;char  name[20];char sex;int age;
}stu2; //stu2是一个结构体类型=struct student

结论:在C++中定义结构体的时候不要整什么typedef。此处说明是为了避免以后看到这样的代码不知所措。

typedef struct引起的结构体问题相关推荐

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

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

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

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

  3. C/C++语法知识:typedef struct 用法详解

    第一篇:typedef struct与struct的区别 1. 基本解释 typedef为C语言的关键字,作用是为一种数据类型定义一个新名字.这里的数据类型包括内部数据类型(int,char等)和自定 ...

  4. struct与typedef struct的区别

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

  5. typedef struct与struct的区别

    第一篇:typedef struct与struct的区别 1. 基本解释 typedef为C语言的关键字,作用是为一种数据类型定义一个新名字.这里的数据类型包括内部数据类型(int,char等)和自定 ...

  6. 【C语言】typedef struct 和 struct 使用区别

    目录 1. 什么是 typedef ? 1.1 typedef为C语言的关键字 1.2 在编程中使用typedef目的 1.3 typedef最简单的应用--为已知数据类型命名 1.3.1  type ...

  7. C语言结构体typedef struct详解

    1.typedef关键字 C 语言提供了 typedef 关键字,您可以使用它来为类型取一个新的名字.下面的实例为单字节数字定义了一个术语 BYTE: typedef unsigned char BY ...

  8. 关于数据结构(c语言)中结构体声明的typedef struct LNode, *LinkList的思考

    在数据结构的链表,表示中 typedef struct Node * PtrToNode 和 typerdef struct List的表示说明 typedef struct Node * PtrTo ...

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

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

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

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

最新文章

  1. 毕业三年,贷款40万创业之后我又做回了程序员
  2. android 检测摇一摇
  3. SCCM 2012系列2 服务器准备下
  4. 青岛工学院计算机专业分数线,青岛工学院分数线
  5. C# Wke使用例子 (KyozyWke)
  6. 服务器系统蓝牙驱动怎么安装,win7蓝牙驱动安装教程
  7. SECS Message解析说明
  8. Android播放器框架分析之AwesomePlayer
  9. 聚类算法效果衡量标准
  10. hdrp_HDRP:在2019.3版中无法预览
  11. JavaScript(Ajax)和Cookie的同源策略
  12. PHP 获取指定日期的周一
  13. 2012年MacBook更换SSD固态硬盘和16G内存条
  14. python中copy函数怎么用_python怎样copy对象
  15. DeepAR:Probabilistic forecasting with autoregressive recurrent network
  16. 耳机不分主从是什么意思_【“沃”新品】TWS真无线蓝牙耳机 彰显品质生活!...
  17. oracle view占资源,关于VIEW PUSHED PREDICATE的一个优化案例
  18. VIA图像标注系统汉化版
  19. 网络信息安全攻防学习平台(基础关)
  20. 【软件测试与质量保证】期末复习1(HITWH)(质量保证部分)

热门文章

  1. mysql中cost对比测试
  2. labVIEW学习笔记(二)公式节点、数组
  3. Git 常见问题总结
  4. git本地给远程仓库创建分支
  5. 2个linux机器怎么传文件(scp)
  6. 进阶篇:3.4.1)机械加工件-不同制造工艺详解和对应设备
  7. FPGA图像处理 两路sensor的色调不一致
  8. 【德】博多·费舍尔 - 小狗钱钱2(2013年7月27日)
  9. [NHFrog]发布第三个版本_NHibernate嵌入式代码生成器
  10. Cocos2d-x简介