结构体、联合和枚举--基本

结构体

结构体是用于把一组不同类型的数据组合在一起的复合类型,其中每个数据都是构体中的成员,既组成部分,可以分开使用,也可以整体输出,

定义:

struct 结构体的类型名{成员声明;};

如:

struct x {int a;char b;};

一段使用的例子:

struct x{char c;

int i;

float f;

double d;}

x s1,s2;       //x既我们定义的类型名

x* ps=&s1;

s1.c='a';

s1.i=1;

s1.f=3.5;

s1.d=0.7;

s1.c=ps->c;    //指针指向成员c,可以如此调用成员。

结构体中的存储是所以成员的大小总和,但只要添加一个成员,它会增加四个字节,按照整型数的字节数存储,比如一个字符一个整型数,其占空间是8个字节。

联合

用于使用一个变量处理不同的数据类型,由关键字union来定义,union的每个成员都从联合变量的首地址开始存储,所以每次只能使用一个成员。

定义:

union 定义名

{数据类型 ;}

如:

union packed{

char c;

int i;

float f;

double d;

};

packed x;

x.c='a'; //其他成员知识不可使用

x.d=3.14; //替换了c的内容

枚举

枚举类型定义了一组命名的整数常量,来提高代码延续性,头文件要用enum

如:

enum trafficlight(red, green ,yellow);

如果不赋值,那么其分别是0,1,2

而加入red=5,其后面没赋值,则剩下分别为6,7

我们可以定义:

trafficlight stop=red;

这些是不限定作用域的枚举类型,还有限制作用域的类型,定义为如:

enum clsss或enum struct

具体定义为

enum clsss trafficlight {red,green,yellow}

使用要限定使用域,比如这个例子:

trafficlight abc=trafficlight::red;  //一定要有这个trafficlight::限定作用域

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值