如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
会计学结构体类型也是属于一种构造类型数据,它将不同(bùtónɡ)类型的数据项组织成一个组合项,这些组合项中的数据项是互相联系的。定义一个结构体类型的一般形式:struct结构体名{成员表列};例如:对于一名学生,有如下不同(bùtónɡ)类型的属性:学号、姓名、年龄、性别、成绩、地址等。要表示一个学生的六个方面不同(bùtónɡ)类型的有关数据,就可以定义一个结构体类型。structstudent{intnum;charname[10];charsex;intage;floatscore;charaddr[30];};其中:struct是关键字,表示结构体类型。student是结构体类型名,structstudent和标准类型名(int、float)一样(yīyàng)可以用作定义变量的类型。花括号内是结构体中的各个成员,每个成员都应进行类型说明。一、先定义结构体类型,再定义变量名例如:structstudent{intnum;charname[10];charsex;intage;floatscore;charaddr[30];};structstudentstudent1,student2;上面(shàngmiɑn)的student1和student2是structstudent类型的变量,它们具有structstudent类型的结构。定义结构体变量后,系统为变量分配内存单元。可用sizeof(student1)来计student1和student2各占49个字节。二、在定义结构体类型(lèixíng)的同时定义变量例如:structstudent{intnum;charname[10];charsex;intage;floatscore;charaddr[30];}student1,student2;三、直接(zhíjiē)定义结构体类型变量(不写类型名)例如:struct{intnum;charname[10];charsex;intage;floatscore;charaddr[30];}student1,student2;说明:1.定义类型与定义变量是不同的,在编译时对类型不分配空间,只对变量分配存储空间。2.只能对变量赋值、存取或运算,而对结构体类型不可以。3.对结构体中的成员(chéngyuán)可以单独使用,它的作用和地位相当于普通变量。4.可以用sizeof运算符测一个类型数据的长度。n=sizeof(structstudent)或n=sizeof(student1)n=sizeof(int)n=sizeof(float)5.成员(chéngyuán)也可以是结构体变量。一个结构体类型的变量不能作为一个整体进行(jìnxíng)输入和输出,只能对结构体变量中的各个成员进行(jìnxíng)输入、输出和运算。scanf(“%d,%s,%c,%d,%f,%s”,&student1);printf(“%d,%s,%c,%d,%f,%s”,student1);若结构体类型嵌套一个结构体类型,则采用逐级访问的方法,只能对最低级的成员进行访问。student1.birthday.year访问结构体变量student1的成员出生年份(niánfèn)。而不能用student1.birthday访问birthday。结构体变量的成员可以和普通变量一样进行各种运算student2.score=student1.score;student1.age++;++student1.age;例如(lìrú):structstudent{longintnum;charname[20];charsex;charaddr[20];}a={89031,"LiLin",'M',"123BeijingRoad"};Printf(“%ld,%s,%c,%s\n”,a.num,a.name,a.sex,a.addr);结构体数组中的每个元素都是一个结构体类型的数据,它们(tāmen)都分别包括各个成员项。例如:要表示3名学生的学号、姓名和成绩。structstudent{intnum;charname[20];floatscore;};structstudentstu[3]={{1000,“liming”,70},{1001,“wangfan”,80},{1002,“zhangyan”,65.5}};程序举例:有四个学生,每个学生包括(bāokuò)学号、姓名、成绩,要求找出成绩最高者的姓名和成绩。S11_ex1.cmain(){structstudent{intnum;charname[20];