枚举类型和typedef语句及结构体共用体注意点——C语言复习篇2

枚举类型

enum 类型标识符
{	枚举值名表	};

注:枚举常量只定义序号;
枚举类型不是构造型数据类型,只是简单类型,类型定义中,仅定义该简单类型的取值范围,里面并没有成员的概念
一个枚举变量的值只能取该类型定义的几个枚举常量,可以将枚举常量或枚举变量赋给一个枚举变量,但不能将一个整数赋给它
枚举值可比较大小,按序号比较
枚举值不能直接输入和输出,输入一般通过序号转换,输出则一般通过switch语句以字符串的方式输出。


typedef语句
typedef语句可为系统已定义的简单类型(如int、char、float等)另起一个名称

typedef 	类型名 	新类型名

typedef为类型定义的关键字,类型名是标准类型名或已定义的类型名,新类型名为用户定义的类型名等价的别名
仅给已有的类型名重新命名,不产生新的数据类型
语句举例

typedef int INTEGER;

将int型重新命名为INTEGER,此后的程序中可用INTEGER作为类型名定义变量

typedef struct st_type STUDENT

struct st_type与STUDENT等价,也可进行如下定义:

typedef struct
{
	...;
}STUDENT;	//STUDENT是类型名,注意它和直接定义结构体变量的区别

此后可用STUDENT定义结构体变量。加粗样式

优点:缩写长的类型定义,使用便于理解的类型名
可将程序参数化,便于移植


结构体共用体注意点:
结构体类型不分配内存,不能赋值、存取、运算;结构体变量分配内存,可以赋值、存取、运算
结构体变量引用:
结构体变量作为整体不能进行运算、比较、输入、输出
结构体变量可以整体赋值,但不能将花括号括起来的常量表整体赋值给它
结构体变量可以作为函数的形参、实参或函数返回值
结构体成员可进行该成员类型允许的各种操作
要遵循结构体的法则,也要遵循数组的法则
共用体成员的定义和引用
不能同时存放多个成员的值,所以共用体变量不能在定义时赋初值
能整体引用的操作与结构体变量基本相同
任意时刻共用体成员只能对一个值有效
共用体和结构体的区别
共用体的各成员相互覆盖存储,几个不同的成员共占同一段内存,某一个时刻只能存一个成员,结构体各成员之间互相独立存储,不同的成员占不同的内存,可存储不同的值。所以结构体变量可初始化,共用体变量不能初始化。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值