C语言结构体typedef struct详解
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详解相关推荐
- 《C语言杂记》C语言结构体和联合体详解
1结构体概述 C 语言中有很多数据类型,数据类型决定了变量存储占用的空间,以及如何解释存储的位模式.像 int.float.char 等是由C语言本身提供的数据类型,不能再进行分拆,我们称之为基本数据 ...
- c语言结构体成员变量私有化,C语言中结构体变量私有化详解
C语言中结构体变量私有化详解 背景介绍 操作系统 : CentOS7.3.1611_x64 gcc版本 :4.8.5 什么是结构体? 在C语言中,结构体(struct)指的是一种数据结构,是C语言中聚 ...
- C语言结构体与指针ppt,c语言指针和结构体:链表详解.ppt
c语言指针和结构体:链表详解.ppt 1,第十一章 链表,2,例跳马.依下图将每一步跳马之后的位置x,y放到一个"结点"里,再用"链子穿起来",形成一条链,相邻 ...
- C++中的结构体vector排序详解
C++中的结构体vector排序详解 使用sort函数对一个vector很常用,前提是通文件中必须包含#include ,但是针对结构体vector排序则需要进行一定的改动.具体事例如下所示: // ...
- go结构体初始化_go嵌套匿名结构体的初始化详解
go匿名结构体 嵌套匿名结构体的 示例代码片. type debugConfig struct { MaxQueueDepth int `json:"maxQueueDepth"` ...
- C语言结构体(Struct)
C语言结构体(Struct) 在C语言中,可以使用结构体(Struct)来存放一组不同类型的数据.结构体的定义形式为: struct 结构体名{ 结构体所包含的变量或数组 }; 结构体是一种集合,它里 ...
- C语言结构体变量——struct
当我们有大量且类型不同的数据需要描述的时候,如果针对每个数据都去定义一个变量或数组,是很消耗时间和内存的,那么如何跟方便的存储大量不同类型的数据呢,这就需要用到结构体变量了 结构体变量--struct ...
- c语言实现结构体变量private,C语言中结构体变量私有化详解
背景介绍 操作系统 : CentOS7.3.1611_x64 gcc版本 :4.8.5 什么是结构体? 在C语言中,结构体(struct)指的是一种数据结构,是C语言中聚合数据类型(aggregate ...
- C语言typedef struct详解
在C中定义一个结构体要用typedef,如: typedef struct Student {int a; }Stu; 于是在声明变量的时候就可以:Stu stu1;(如果没有typedef就必须用s ...
最新文章
- ISME:比较基因组学揭示蓝藻进化和生境适应性特征
- 为什么升级不了android版本,为啥你的手机无法升级到安卓7.0?原因都在这里!...
- Java 多线程使用
- java set第n位_数据结构与算法——常用数据结构及其Java实现
- 鸿蒙比不了IOS,比苹果的iOS14还流畅,华为鸿蒙2.0可以啊!
- imageview不显示图片
- ckeditor+ckfinder+syntaxhighlighter编辑器
- 长春分享网站服务器迁移,网站迁移公告
- Linux动态库的导出控制
- 全程干货,requests模块与selenium框架详解
- BUAA_OO_Unit1总结
- Android https通信问题
- 洛谷P3261 [JLOI2015]城池攻占(左偏树)
- android用单元测试的多,AndroidStudio中对Android应用进行单元测试InstrumentationTestCase...
- matlab随机数函数小结
- 2016版excel_在抱怨加班之前,先看看你有没有熟练使用这13个Excel大神技巧?
- mf4350d驱动下载linux,mf4350d驱动-佳能mf4350d驱动下载 1.0 官方版 - 河东下载站
- 小米6自动重启android,小米6总是自动重启怎么办?小米6自动重启的解决方法
- 如何使用计算机远程关闭手机软件,手机怎么控制电脑 手机远程控制电脑关机方法 (全文)...
- python的浅拷贝和深copy