《C premier plus》——结构和其他数据形式

 1. 链式结构:队列,二叉树,堆,哈希表和图标。 
 2. 联合(union):

**只能存储一个值**
例:
union hold{
	int a;
	double b;
	char c;
	};以上形式声明的联合,可以储存一个int或者double或者char类型的值。
	
union hold fit;单独的联合变量,在联合中,占用空间最大的是double类型,所以分配8字节的空间给fit。
union hold save[10];创建一个数组,内含10个元素,每个元素占用8字节。
union hold * pu;创建指向hold类型联合变量的指针。
使用用法:
fit.a=23;//占2字节
fit.b=23.23;//清除23,储存23.23,占8字节
fit.c='h';//清除23.23,储存h,占1字节

pu=&fit;
x=pu->a;//相当于x=fit.a;

另一种方法是可以用来存储结构,来达到非此即彼。例如:
union a{
struct yes y;
struct no n;
};
 3. 枚举类型(enumerated type)
使用enum关键字,来表示整型常量,enum是int类型,枚举类型主要目的是提高程序的可读性。
例:
enum a{red,yellow,blue, green,pink};//red,yellow,blue等称为枚举符(enumerator),默认值对应0,1,2,3,4。也可以声明为enum a{red=100,yellow=20......};,若赋值数前后都没有数值,则之前的从0开始递增赋值,后边的从赋值数递增赋值。
enum a color = blue;

在声明数组时,可以用枚举常量表示数组大小,可以用在switch语句中的标签。

*C语言使用名称空间(namespace):两个不同作用域的同名变量不冲突;两个相同作用于的同名变量冲突。*


 4. typedef简介
与define类似,但是typedef创建的符号名只限于类型,不能定义值;
typedef由编译器解释,不归预处理器;
在其受限范围内,typedef比#define更灵活。


例:
typedef unsigned char BYTE;
BYTE a,*p,b[10];//定义为unsigned char类型。

typedef char *STRING;
STRING a,b,c;//等价于char *a,*b,*c;

typedef struct complex{
	float real;
	float imag;
	}COMPLEX;//可以用COMPLEX来表示complex结构。
 5. 其他复杂的声明
(1[]和()的优先级相同,但是都比*的优先级高。
(2[]和()的优先级相同,结合律从左向右。
 6. 函数和指针
要想声明一个指向特定类型函数的指针,可以先声明一个该类型的函数,然后把函数名替换为(*pf)形式的表达式。
例如:void ToUpper(char *a)换成void (*pf)(char *a)(*pf)(a)等价于pf(a),都可以替换为ToUpper(a)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值