四根羽毛i

导航

统计

结构体、共用体、枚举类型、typedef梳理

一、先声明类型名,再定义类型的变量(也可以不写出类型名)

一般结构:

   struct 结构体名//可省略

  { 成员名1;

  成员名2;

  ......}变量名1,变量名2,......;

初始化时字符串用“”,字符用‘’。

对成员名赋值 :变量名.成员名=........;

 

结构体成员为字符数组时,从键盘通过scanf获取值无需使用取地址符号。普通成员须使用&符号。

结构体数组的定义:

struct 结构名{

成员表列;

}数组名[长度]={初始化表列};

定义结构体指针:

struct 类型名 *指针;

指针=&类型名;

(*p)表示的是p指向的指针变量,(*p).num代表的是结构体变量的成员num。

 

成员运算符“.”优于"*",*p.num等价于*(p.num)。

.运算符优先级最高

如果p指向一个结构体变量stu,以下三种用法等价:


stu.成员名

(*p).成员名

p->成员名

 

二、共用体

共用体内存占用的长度等于成员表列中最长的那个,

(使用sizeof函数对其中任意定义变量求字节数都为最长者)

共用体初始化时只能有一个变量(因为每个变量占用的是同一内存单元),

且最后一次被赋值的成员的值为最终值。

结构体和共用体可以

互相嵌套;

三、枚举类型

定义:

enum 枚举名{ 成员列表(中间用逗号隔开)};

无定义的元素复赋值规则:

首元素为0,其余根据已赋值的成员左减右加

 

四、typedef 可以声明新类型:

1.用新名字代替原来的名字(区别于define,#define适用于宏定义在函数之前)

2.将复杂的类型名变简单一点:

(1)命名一个新类型名代替结构体;

tyedef 结构体类型名{

成员列表;

}新类型名;

(2)数组,指针,库函数都可以换新名字使用;

 

posted on   四根羽毛i  阅读(88)  评论(0编辑  收藏  举报

编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示