AutoLeaders控制组——C语言结构类型学习笔记倪文健

AutoLeaders控制组——C语言结构类型学习笔记倪文健

11.1.1枚举

常量符号化:用符号而不是数字表示程序中的数字,增加程序可读性。

枚举是一种用户定义的数据类型,用enum以如下语法来声明:

enum 枚举类型名字{名字0,…,名字n};

类型只能是int

在这里插入图片描述

枚举量可以作为值

枚举类型可以跟上enum作为类型

实际是以整数来做内部计算和外部输出的

在枚举的最后放一个计数器cnt,当需要遍历枚举量或建立一个用枚举量做下标的数组时就很方便了。如:

enum color {red,yellow,blue,cnt};

char *COLOR[cnt]{“red”,“yellow”,“blue”}

声明枚举量可以指定值。

在这里插入图片描述

枚举通常用于有意义上排比的名字,比const int 方便

枚举比宏(macro)好,因为枚举有int类型

11.2.1结构类型

声明结构类型:struct 名字{};要有";"

在这里插入图片描述

如果在函数内部声明,就只能在函数内部使用。所以通常在函数外部声明结构类型。

struct point{

int x;

int y;

};

struct point p1,p2;

p1,p2都是point,里面有x,y的值。也可以:

struct point{

int x;

int y;

}p1,p2;

结构初始化:struct point p1={1,2}

或者struct point p1={.x=1,.y=2}

结构用.运算符和名字访问其成员:p1.x;p1.y

j结构运算:

访问整个结构,可以直接用结构变量的名字

对于整个结构,可以做赋值,取地址,传递给函数参数

p1=(struct point){5,10}//相当于p1.x=5,p1.y=10

p1=p2;//相当于p1.x=p2.x;p1.y=p2.y

结构变量名字不是地址,要用&取地址

struct date *pDate=&today;

在这里插入图片描述

11.2.2结构与函数

整个结构可以作为参数的值传入函数:int num(struct date d)

这是在函数内新建一个结构变量,并复制调用者结构的值

没有直接的方式可以一次scanf一个结构

函数只返回值,不修改原函数的结构变量

给结构变量赋值:

拷贝整个函数:

在这里插入图片描述

通过指针:

在这里插入图片描述

11.2.3结构中的结构

结构数组:

struct time {

int hour;

int min;

int second;

};

struct time now[3]{

{11,59,59},{12,0,0},{1,29,59}

}

结构中的结构:

在这里插入图片描述

结构中的结构的数组:

在这里插入图片描述

11.3.1类型定义

自定义数据类型(typedef):

typedef int Length;

Length即可代替int使用

作用:

改善了程序可读性。简化了复杂的名字,重载已有类型名字,新名字含义更清晰。

如:

typedef struct time {

int hour;

int min;

int second;

} time;

11.3.2联合

union q{

int i;

char c;

}e1,e2;

e1.i=4;

e2.c='a';

i和c联合起来使用一个空间

存储:

所有成员共享一个空间,同一时间只有一个成员有效,union的大小是其最大的成员

初始化:

对第一个成员做初始化

常用场合:得到一个整数内部各个字节

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值