C语言教程:结构体与共用体学****目的:将不同的类型和对象组织成一个组合项,称之为“记录”和结构体;将不同类型的变量存放到同一段内存单元中,可相互覆盖,这种共同占用一段内存的结构称为共用体。结构体与共用体内容介绍1结构体类型声明、结构体类型变量定义和引用2结构体数组和指向结构体类型数据的指针3链表4共用体5枚举类型6用typdef定义类型什么是结构体数据类型?一种构造数据类型由不同数据类型成员构造而成例如,学生构造体structstu{intnum;charname[20];charsex;floatscore;};定义一个结构的一般形式为:struct结构名{成员表列};成员的定义形式为:类型说明符成员名;分析如下定义:{intnum;charname[20];charsex;floatscore;};结构类型名为:structstu,可以象int,char,float一样用来定义变量的类型;结构名:stu,几乎不单独使用;structstu结构体类型在内存中的存储结构结构类型变量的说明说明结构变量有以下三种方法。以上面定义的stu为例来加以说明。1. 先定义结构,再说明结构变量。如:structstu{intnum;charname[20];charsex;floatscore;};structstuboy1,boy2;说明了两个变量boy1和boy2为stu结构类型。也可以用宏定义使一个符号常量来表示一个结构类型。例如:#defineSTUstructstuSTU{intnum;charname[20];charsex;floatscore;}boy1,boy2;。例如:structstu{intnum;charname[20];charsex;floatscore;}boy1,boy2;这种形式的说明的一般形式为:struct结构名{成员表列}变量名表列;。例如:struct{intnum;charname[20];charsex;floatscore;}boy1,boy2;这种形式的说明的一般形式为:struct{成员表列}变量名表列;成员也可以又是一个结构,即构成了嵌套的结构。例如:structdate{intmonth;intday;intyear;};struct{intnum;charname[20];charsex;structdatebirthday;floatscore;}boy1,boy2;结构变量成员的表示方法允许具有相同类型的结构变量相互赋值一般对结构变量的使用,包括赋值、输入、输出、运算等都是通过结构变量的成员来实现的,不能将结构体作为一个整体来处理。表示结构变量成员的一般形式是::。例如::允许具有相同类型的结构变量相互赋值;给各成员赋值。【例】给结构变量赋值并输出其值。main(){structstu{intnum;char*name;charsex;floatscore;}boy1,boy2;=102;="Zhangping";printf("inputsexandscore\n");scanf("%c%f",&,&);boy2=boy1;printf("Number=%d\nName=%s\n",,);printf("Sex=%c\nScore=%f\n",,);}结构变量的初始化:和其他类型变量一样,对结构变量可以在定义时进行初始化赋值。【例】对结构变量初始化。main(){structstu/*定义结构*/{intnum;char*name;charsex;floatscore;}boy2,boy1={102,"Zhangping",'M',};boy2=boy1;printf("Number=%d\nName=%s\n",,);printf("Sex=%c\nScore=%f\n",,);}
51单片机 来自淘豆网www.taodocs.com转载请标明出处.