1、typedef关键字

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

typedef unsigned char BYTE;

在这个类型定义之后,标识符 BYTE 可作为类型 unsigned char 的缩写,例如:

BYTE  b1, b2;

typedef相当于给unsigned char起了一个别名。

typedef vs #define

#define 是 C 指令,用于为各种数据类型定义别名,与 typedef 类似,但是它们有以下几点不同:

  • typedef 仅限于为类型定义符号名称,#define 不仅可以为类型定义别名,也能为数值定义别名,比如您可以定义 1 为 ONE。

  • typedef 是由编译器执行解释的,#define 语句是由预编译器进行处理的。

2、typedef struct

typedef struct的使用方法有很多种,这里只介绍最标准的一种使用方法:

声明:

    typedef struct Student{int a;}Stu;

使用:

        Stu xiaoming;

区别:

若struct node {}这样来定义结构体的话。在申请node 的变量时,需要这样写,struct node n; 若用typedef,可以这样写,typedef struct node{}NODE; 。在申请变量时就可以这样写,NODE n; 区别就在于使用时,是否可以省去struct这个关键字。

但是在C++中又会造成区别:

在c++中如果用typedef的话:

struct Student
{
int a;
}stu1;//stu1是一个变量
typedef struct Student2
{
int a;
}stu2;//stu2是一个结构体类型

stu1是一个变量,使用时可以直接访问stu1.a stu2是一个结构体类型,使用时则必须先 stu2 s2

3、结构体指针

定义:

    typedef struct Student{int a;}Stu,*pStu;

使用:

pStu exam1;
Stu exam2;
exam1 = exam2;
exam2.a = 1;
printf("%d",exam1->a);//输出为1

或者:

Stu exam[4];
pStu p;
p = exam;
p +=2;//等价于p = exam[1]

等价于:

    typedef struct Student{int a;}Stu;
Stu *exam1;
Stu exam2;
exam1 = exam2;
exam2.a = 1;
printf("%d",exam1->a);//输出为1

C语言结构体typedef struct详解相关推荐

  1. 《C语言杂记》C语言结构体和联合体详解

    1结构体概述 C 语言中有很多数据类型,数据类型决定了变量存储占用的空间,以及如何解释存储的位模式.像 int.float.char 等是由C语言本身提供的数据类型,不能再进行分拆,我们称之为基本数据 ...

  2. c语言结构体成员变量私有化,C语言中结构体变量私有化详解

    C语言中结构体变量私有化详解 背景介绍 操作系统 : CentOS7.3.1611_x64 gcc版本 :4.8.5 什么是结构体? 在C语言中,结构体(struct)指的是一种数据结构,是C语言中聚 ...

  3. C语言结构体与指针ppt,c语言指针和结构体:链表详解.ppt

    c语言指针和结构体:链表详解.ppt 1,第十一章 链表,2,例跳马.依下图将每一步跳马之后的位置x,y放到一个"结点"里,再用"链子穿起来",形成一条链,相邻 ...

  4. C++中的结构体vector排序详解

    C++中的结构体vector排序详解 使用sort函数对一个vector很常用,前提是通文件中必须包含#include ,但是针对结构体vector排序则需要进行一定的改动.具体事例如下所示: // ...

  5. go结构体初始化_go嵌套匿名结构体的初始化详解

    go匿名结构体 嵌套匿名结构体的 示例代码片. type debugConfig struct { MaxQueueDepth int `json:"maxQueueDepth"` ...

  6. C语言结构体(Struct)

    C语言结构体(Struct) 在C语言中,可以使用结构体(Struct)来存放一组不同类型的数据.结构体的定义形式为: struct 结构体名{ 结构体所包含的变量或数组 }; 结构体是一种集合,它里 ...

  7. C语言结构体变量——struct

    当我们有大量且类型不同的数据需要描述的时候,如果针对每个数据都去定义一个变量或数组,是很消耗时间和内存的,那么如何跟方便的存储大量不同类型的数据呢,这就需要用到结构体变量了 结构体变量--struct ...

  8. c语言实现结构体变量private,C语言中结构体变量私有化详解

    背景介绍 操作系统 : CentOS7.3.1611_x64 gcc版本 :4.8.5 什么是结构体? 在C语言中,结构体(struct)指的是一种数据结构,是C语言中聚合数据类型(aggregate ...

  9. C语言typedef struct详解

    在C中定义一个结构体要用typedef,如: typedef struct Student {int a; }Stu; 于是在声明变量的时候就可以:Stu stu1;(如果没有typedef就必须用s ...

最新文章

  1. ISME:比较基因组学揭示蓝藻进化和生境适应性特征
  2. 为什么升级不了android版本,为啥你的手机无法升级到安卓7.0?原因都在这里!...
  3. Java 多线程使用
  4. java set第n位_数据结构与算法——常用数据结构及其Java实现
  5. 鸿蒙比不了IOS,比苹果的iOS14还流畅,华为鸿蒙2.0可以啊!
  6. imageview不显示图片
  7. ckeditor+ckfinder+syntaxhighlighter编辑器
  8. 长春分享网站服务器迁移,网站迁移公告
  9. Linux动态库的导出控制
  10. 全程干货,requests模块与selenium框架详解
  11. BUAA_OO_Unit1总结
  12. Android https通信问题
  13. 洛谷P3261 [JLOI2015]城池攻占(左偏树)
  14. android用单元测试的多,AndroidStudio中对Android应用进行单元测试InstrumentationTestCase...
  15. matlab随机数函数小结
  16. 2016版excel_在抱怨加班之前,先看看你有没有熟练使用这13个Excel大神技巧?
  17. mf4350d驱动下载linux,mf4350d驱动-佳能mf4350d驱动下载 1.0 官方版 - 河东下载站
  18. 小米6自动重启android,小米6总是自动重启怎么办?小米6自动重启的解决方法
  19. 如何使用计算机远程关闭手机软件,手机怎么控制电脑 手机远程控制电脑关机方法 (全文)...
  20. python的浅拷贝和深copy

热门文章

  1. 网关、子网掩码、DNS的设置
  2. 分布式限流的解决方案
  3. Nginx 下载安装与配置
  4. 索骥馆-DIY操作系统之《30天自制操作系统》扫描版[PDF]
  5. html5有序列表无序列表自定义列表
  6. jquery 元素节点操作 - 创建节点、插入节点、删除节点
  7. 辗转相除法的原理,一看就懂,一学就会
  8. 干货来袭:抖音定位的重要性及抖音四步曲丨国仁网络资讯
  9. 如何选择Python版本2还是3
  10. 简单的git基本命令