在结构体类型定义中要注意以下几点: (1)结构体类型定义中不允许对结构体本身递归定义 (2)结构体类型定义中可以包含另外的结构体,即结构体 是可以嵌套的 令(3)结构体类型是设计者根据不同对象来定乂的,所以结 构体类型并非只有一种,而是根据所描述的对象的不同有很 多种,各种结构体类型都可以有自己的结构体名,可以包含 不同数目的成员 (4)定义了一个结构体类型以后,并不意味着已分配一段 内存单元来存放这些结构体成员,此时只是定义了类型而不 整型(nt)或实型(oa)一样,数据类型不占内存E。,就像 分配内存单元。只定义数据类型系统不分配内存单元 (5)结构体中的成员名可以和程序中其他地方的变量名相 同,两者互不干扰。如程序中定义 个整型变量pay和 struct Worker中的成员pay代表不同的对象,互不千扰 (6)同名结构体类型不可以重复定义
在结构体类型定义中要注意以下几点: ❖ (1)结构体类型定义中不允许对结构体本身递归定义 ❖ (2)结构体类型定义中可以包含另外的结构体,即结构体 是可以嵌套的。 ❖ (3)结构体类型是设计者根据不同对象来定义的,所以结 构体类型并非只有一种,而是根据所描述的对象的不同有很 多种,各种结构体类型都可以有自己的结构体名,可以包含 不同数目的成员。 ❖ (4)定义了一个结构体类型以后,并不意味着已分配一段 内存单元来存放这些结构体成员,此时只是定义了类型而不 分配内存单元。只定义数据类型系统不分配内存单元,就像 整型(int)或实型(float)一样,数据类型不占内存单元。 ❖ (5)结构体中的成员名可以和程序中其他地方的变量名相 同,两者互不干扰。如程序中定义了一个整型变量pay和 struct Worker中的成员pay代表不同的对象,互不干扰。 ❖ (6)同名结构体类型不可以重复定义
822结构体变量的定义 冷先定义结构体类型,再定义结构体类型的变量 在定义结构体类型的同时定义结构体类型的变量 直接定义结构体类型的变量
8.2.2 结构体变量的定义 ❖ 先定义结构体类型,再定义结构体类型的变量 ❖ 在定义结构体类型的同时定义结构体类型的变量 ❖ 直接定义结构体类型的变量
8.3结构体变量的使用和初始化 令结构体变量的使用一般可分为两种情况:一种是结构体成员 的使用;另一种是结构体变量整体的使用。 8.3.1结构体变量成员的引用 引用的一般形式为: 结构体变量名.成员名 “.”是成员运算符,它在所有运算符中优先级最高
8.3 结构体变量的使用和初始化 ❖ 结构体变量的使用一般可分为两种情况:一种是结构体成员 的使用;另一种是结构体变量整体的使用。 ❖ 8.3.1结构体变量成员的引用 ❖ 引用的一般形式为: ❖ 结构体变量名.成员名 ❖ “.”是成员运算符,它在所有运算符中优先级最高
例8-1】建立一个简单的学生信息表 令# nclude<stdo.h> main i struct student i char name[20]: char sex Int age; float score; 3s printf("input name gets(stu name printf(input sex: stu sex=getchar printf("input age: ) scanf(%d", &stu age) printf("input score: scanf(%f", &stu score) printf("name: %s, sex: %C, age: %d, score %5.2f\n", stu name, stu. sex, stu age, stu score): 1
【例8-1】建立一个简单的学生信息表。 ❖ #include<stdio.h> main() { struct student { char name[20]; char sex; int age; float score; }stu; printf("input name:"); gets(stu.name); printf("input sex:"); stu.sex=getchar(); printf("input age:"); scanf("%d",&stu.age); printf("input score:"); scanf("%f",&stu.score); printf("name:%s,sex:%c,age:%d,score: %5.2f\n",stu.name,stu.sex,stu.age,stu.score);}
运行结果为 c:"E:\C\test\ Debug test.exe input name: Li Lin nput sex: M input age: 20 input score: 90 name: Li Lin, sex: M, age: 20, score: 90.00 Press any key to continue
运行结果为: