(3)直接定义结构体类型的变量。 其一般形式为: struc 类型标识符成员名1; 类型标识符成员名2; 类型标识符成员名n; }结构体变量名表; 7
(3)直接定义结构体类型的变量。 其一般形式为: struct { 类型标识符成员名1; 类型标识符成员名2; 类型标识符成员名n; } 结构体变量名表;
例如: struct int numa char name 10 char sex Int age; char addr50l; int score; 3 stul, stu2 7
例如: struct { int num; char name[10]; char sex; int age; char addr[50]; int score; } stu1,stu2;
2.结构体变量的引用 结构体成员引用的一般形式如下: 结构变量名成员名 其中“”为结构体成员运算符,所有C语言 运算符中它的优先级最高,因此可以把上述引 用形式作为一个整体来看待。 例如, stul, name、stu2.core分别表示结 构体变量stu1的成员name与结构体变量stu2的 成员 score 7
2.结构体变量的引用 结构体成员引用的一般形式如下: 结构变量名.成员名 其中“.”为结构体成员运算符,所有C语言 运算符中它的优先级最高,因此可以把上述引 用形式作为一个整体来看待。 例如,stu1.name 、stu2.score分别表示结 构体变量stu1的成员name与结构体变量stu2的 成员score
例1定义有关职工工资信息的结构体类型变量(包括 编号、姓名、基本工资、附加工资、水电费、实发工资) 为结构体变量中的成员赋值并输出其值。 struct person int num: /职工编号 char*name: /姓名 float base: /基本工资 loat addition; 体附加工资 oat cost;/水电费 float salary; /实发工资 }; maint struct person employee, employee; employee. num=2086 7 employee name "Zhao xiwang 5
例11.1 定义有关职工工资信息的结构体类型变量(包括 编号、姓名、基本工资、附加工资、水电费、实发工资), 为结构体变量中的成员赋值并输出其值。 struct person { int num; /* 职工编号*/ char *name; /* 姓名 */ float base; /* 基本工资*/ float addition; /* 附加工资*/ float cost; /* 水电费*/ floatsalary; /* 实发工资*/ } ; main() { struct person employeea,employeeb; employeea.num=2086; employeea.name="Zhao xiwang";
printf input base, addition, cost: n); scanf(%f, %f, %f", &employee base, &employee. addition, &employee cost); employee salary=employee base+employee. addition employee cost; employee=employee printf(" Number=%dn Name=%sIn", employee. num employee name); printf("Base=%. 2f\nAddition=%. 2f\n", employee base, employee addition); printf("Cost=%.2fn Salary=%.2f\n", employee cost employee salary); 7
printf("input base,addition,cost:\n"); scanf("%f,%f,%f", &employeea.base, &employeea.addition, &employeea.cost); employeea.salary=employeea.base+employeea.additionemployeea.cost; employeeb=employeea; printf("Number=%d\nName=%s\n", employeeb.num, employeeb.name);. printf("Base=%.2f\nAddition=%.2f \n",employeeb.base, employeeb.addition); printf("Cost=%.2f\nSalary=%.2f\n", employeeb.cost, employeeb.salary); }