全面学习C语言【六】:结构类型(enum枚举、struct结构、union联合)

十二、结构类型

🎈enum / 枚举

在定义几个独立的const常量时 可以使用枚举
枚举是一种用户定义的数据类型 关键字是enum 用于以更方便的方式定义多个可以排列的名字

语法:enum 枚举类型的名字 {名字1,名字2 ... 名字n};

比如:

const int ONEVALUE=0;
const int TWOVALUE=1;
const int THREEVALUE=2;

可以改为:

enum MYVALUE {
   ONE,TWO,THREE};
// 在这里ONE默认就是0 TWO默认就是1 THREE默认就是2

枚举类型的名字并不经常使用 而是直接使用大括号内定义的名字
这些名字它们就是常量符号 类型为int 值依次从0至n递增

枚举的意义 就是给一些排列的常量起名字
比如 enum MYVALUE{ONE,TWO,THREE} 的意思就是声明一种数据类型名为MYVALUE
可以将其当作一种数据类型来使用 但使用时必须带上enum关键字
比如void f(enum MYVALUE m)enum MYVALUE m=TWO
由于其本质就是int 因此可以作为int来输入输出(%d)

用的时候 可以在最后加上一个计数器 用于表示枚举量共有多少:

enum MYVALUE{
   ONE,TWO,THREE,countVALUE}

在声明枚举量的时候 还可以指定值:

enum MYVALUE{
   ONE=2,TWO,THREE=6}
// 此时ONE是2 TWO是3 THREE是6 没有4和5了

然而 枚举实际上很少用…

🎈struct / 结构

若需要同时表达多个数据 或 表达出一个整体(比如一个人有姓名性别年龄之类的)
此时 需要用到结构
结构就是复合的数据类型 在其中可以有很多各种类型的成员 用一个变量来表示这些数据
(结构其实就像Java中的封装思想 将多个属性封装成了一个类)

简单例子:

#include <stdio.h>

// 声明一个类型为student的结构 里面有name属性和age属性
struct student
{
   
	char* name;
	int age;
};

int main(int argc,char const *argv[])
{
   
	struct student student1;
	
	student1.name="陈涛";
	student1.age=18;
	
	printf("%s\n",student1.name);
	printf("%i\n",student1.age);
	
	return 0;
}

和本地变量一样 在函数内部声明的结构类型只能在函数内部使用
因此 通常是在函数外部声明结构类型 这样即可被多个函数使用了

声明结构变量(在Java中是创建对象)的时候 前面要加上struct关键字 代表这是一个结构而不是自带的类型

struct dog
{
   
	char* name;
	int age;
}
struct dog dog1,dog2;

还有另一种方法来声明无名结构 (有点类似于JS的匿名函数…)
只是想要两个变量 而不关注其名字

struct
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值