文档详情

第10章,C语言(非计算机专业).ppt

发布:2017-07-29约1.85万字共97页下载文档
文本预览下载声明
结构类型及; 结构的定义与使用 结构与数组的关系 结构与指针的关系 结构与函数的关系 联合类型、枚举类型 链表简单应用;§10-1 结构类型; 1. struct 为关键字。 2. 结构类型名称是所定义的结构类型标识,由用户自己定义; 3. { } 中包含的是组成该结构的成员; 4. 每个成员的数据类型既可以是简单的数据类型 (int、char、float、double...),也可以是复杂的数据类型(数组类型或结构类型)。;为了处理通信录,可以定义如下结构: struct address { char name[30]; /* 姓名 */ char street[40]; /* 街道名称 */ char city[20]; /* 城市 */ char state[2]; /* 省市代码 */ unsigned long zip; /* 邮政编码*/ };;4.要使用结构必须先说明结构类型的变量。; 例:将变量today说明为date型的结构变量: struct date today; 说明多个address型的结构变量: struct address wang, li, zhang; 结构变量同样有存储类型,存储特性与一般变量完全相同。;可以在声明结构体类型的同时定义变量 struct 结构名 { 成员表列 } 变量名表列; 如: struct date { int year ; int month ; int day ; } today1,today2 ; ;也可以直接定义结构体类型变量,其一般形式为: struct { 成员表列 } 变量名表列; 如: struct { int year ; int month ; int day ; } today ; ; 结构变量的各个成员分量在内存中占用连续存储区域,所占内存大小为结构中每个成员分量占用内存的长度之和。;求结构变量占用内存大小 使用 sizeof 运算。sizeof 是单目运算,其功能是求出运算对象所占的内存空间的字节数目。 使用的一般形式为: sizeof (变量或类型说明符); main ( ) { char str[20]; struct date /* 定义结构date */ { int year, month, day; } today; struct address /* 定义结构address */ { char name[30], street[40],city[20],state[2]; unsigned long int zip; } wang; printf(char: %d\t, sizeof(char)); printf(int: %d\t, sizeof(int)); printf(long: %d\t, sizeof(long)); printf(float: %d\n, sizeof(float)); printf(double: %d\t, sizeof(double)); printf(str: %d\t, sizeof(str)); printf(date: %d\t, sizeof(struct date)); printf(wang: %d\n, sizeof(wang)); };四、关于结构类型的说明;3 成员名可以与程序中的变量名相同,二者代表不同的对象。; struct date { int month; int day; int year; }; struct student { int num; char name[20]; char sex; int age; struct date birthday; char addr[30]; } student1,
显示全部
相似文档