c语言枚举无法识别变量类型,C语言基础---特殊的变量类型(结构体、枚举、共用体)...

1.结构体

C语言允许用户自己建立由不同类型数据组成的组合型的数据结构,它称为结构体,在其他一些高级语言中称为“记录”。

structStudent

{intnum;char name[20];charsex;intage;floatscore;char addr[30];

};

声明一个结构体类型一般形式为:

struct 结构体名

{成员列表};

注意:结构体类型的名字是由一个关键字struct 和结构体名组合而成的(例如struct Student),其中Student就是结构体名,但是这个变量的数据类型是struct Student。

结构体变量的引用由两种方式:①用“.”符号,结构体变量.结构体内的成员变量;②用“->”符号,结构体指针变量名->结构体成员变量。

2.共用体

有时候想用一段内存单元存放不同类型的变量。例如把一个短整型变量,一个字符型变量和一个实型变量放在同一个地址开始的内存单元中。以上三个变量在内存中占得字节数不同,但都是从同一地址开始存放,也就是使用覆盖技术,后一个数据覆盖了前一个数据。这种使几个不同的变量共享同一段内存的结构成为“共用体”类型的结构。

定义公用特类型变量的方式一般如下:

union 共用体名

{

成员表列;

}变量表列;

结构体变量所占得内存长度是各成员占得内存长度之和,而共用体所占得内存长度等于最长的成员长度。

引用共用体变量的方式:只有先定义了共用体变量才能引用它,但应注意,不能引用共用体变量,而只能引用共用体变量中的成员。

共用体类型数据的特点:

(1)同一个内存段可以用来存放不同类型的成员,但在每一瞬时只能存放其中一个成员,而不是同时存放几个;

(2)可以对共用体变量初始化,但初始化表中只能有一个常量;

(3)共用体变量中起作用的成员是最后一次被赋值的成员;

(4)共用体变量的地址和他各成员变量的地址都是同一地址。

3.枚举变量

如果一个变量只有几种可能的值,则可以定义为枚举类型,所谓枚举就是把可能的值一一列举出来,变量的值只限于列举出来的值的范围内。

声明枚举类型用enum开头。例如:

enum  weekday{sun,mon,tue,wed,thu,fri,sat};

以上声明了一个枚举类型enum weekday workday,weekend;  /*后面两个是枚举变量*/

花括号中的sun,mon,...,sat成为枚举元素或者枚举常量。

说明:(1)c编译对枚举类型的枚举元素按常量处理,故称为枚举常量,不要因为它们是标识符而把它们看作变量,不能对其进行赋值。

(2)每一个枚举元素都代表一个整数,c语言按照定义时的顺序默认它们的值为0,1,2,3,4,5....在上面的定义中。sum的值为0,mon的值为1,如果有赋值语句:workday = Mon;相当于workday = 1。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值