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):两个不同作用域的同名变量不冲突;两个相同作用于的同名变量冲突。*