数据结构,联合和列举(Structures, Unions, and Enumerations)
返回
枚举类型(enum)例子
#include 
int main(void)
{
	enum types {BLUE, BLACK, RED, YELLOW, WHITE} color;
	int i, int2;
	color = BLUE;
	printf("color=>%d\n", color);
	printf("BLACK=>%d\n", BLACK);
	int2 = YELLOW;
	printf("int2 =>%d\n", int2);
	for (i=BLUE; i<=WHITE; i++)
		printf("i=>%d\n", i);
	return 0;
}
/* 
执行结果
color=>0
BLACK=>1
int2 =>3
i=>0
i=>1
i=>2
i=>3
i=>4
*/
数据结构程序例子
#include 
#include 
struct jiage {
	int  dinjia;
	int  jianjia;
	int  yudai;
};
typedef struct goods {
	char name[30];
	struct jiage kakaku;
	int kucun;
} goods;
int main(void)
{
	goods syo;
	goods *sp = &syo;
	strcpy(syo.name,"PC486-3");
	syo.kakaku.dinjia  = 19000;
	syo.kakaku.jianjia = 18000;
	syo.kakaku.yudai   = 17200;
	syo.kucun = 136;
	
	printf("GOODS   :%s\n", sp->name);
	printf("Dingjia:%d\n", sp->kakaku.dinjia);
	printf("Jianjia:%d\n", sp->kakaku.jianjia);
	printf("Yu--dai:%d\n", sp->kakaku.yudai);
	printf("Ku--cun:%d\n", sp->kucun);
	return 0;
}
/* 
运行结果
GOODS   :PC486-3
Dingjia:19000
Jianjia:18000
Yu--dai:17200
Ku--cun:136
*/
以下两个宣言的区别是什么?
struct x1 {...};
typedef struct {...} x2;
前者是一个结构宣言;后者是一个"typedef"。
参照时,前者用"struct x1";后者用"x2"。
#include 
typedef struct Styp {
	char ss[80];
	int nn;
} Styp;
struct Styp s1 = {"Test for typedef",100};
int main(void)
{
	printf("s1 = %s\n", s1.ss);
	printf("n1 = %i\n", s1.nn);
	return 0;
}
/* 
s1 = Test for typedef
n1 = 100
*/
返回