第十一章结构体与共用体 §11.1概述 一什么是结构体 整型 实型 基本数据类型 只能定义单一的数据种类 字符型 枚举型在实际应用中希望组成一个整体结构体类型 结构体(类型)由基本数据类型,组合而成的一种数据类型。 学学号num10010(int) 生姓名 name Liming(char) 的性别sex (char 10010 Liming F1890.0 情年龄age 18 (int) 况分数 score90.0(foat) 二。结构体类型的定义 struct结构体名 注: 类型符成员名1; 1)结构体、成员的命名规格 类型符成员名2; 与变量相同; 类型符成员名:“域 2)“成员”又名“分量”或
第11章第1节 §11.1 概 述 一. 什么是结构体 整型 实型 字符型 枚举型 基本数据类型 只能定义单一的数据种类 在实际应用中,希望组成一个整体—— 结构体类型 结构体(类型)——由基本数据类型,组合而成的一种数据类型。 学 生 的 情 况 学号 num 10010 (int) 姓名 name Liming (char) 性别 sex M (char) 年龄 age 18 (int) 分数 score 90.0 (float) 10010 Liming F 18 90.0 二. 结构体类型的定义 struct 结构体名 { 类型符 成员名1; 类型符 成员名2; ...... 类型符 成员名n;} 注: 1)结构体、成员的命名规格 与变量相同; 2) “成员”又名“分量”或 “域
第11章第1节 例: struct student—结构体名(是类型名,而非变量名) int num char nam30成员名 char sex; ge, float score;; §112结构体类型变量的定义 三种方法 先定义结构体类型,再定义变量 struct student Int num char name 303; char sex; 定义结构体类型 int age; float score; 3 分号不能少 struct student stul stu2 变量名 类型名 关键字
第11章第1节 例: struct student { int num; char name[30]; char sex; int age; float score;}; 结构体名(是类型名,而非变量名) 成员名 §11.2 结构体类型变量的定义 三种方法 一. 先定义结构体类型, 再定义变量 struct student { int num; char name[30}; char sex; int age; float score;}; struct student stu1, stu2; 分号不能少 定义结构体类型 变量名 类型名 关键字
二。同时定义 第11章第2节 struct student 类型名 f int num; char name 30 char sex Int age; float score; stul, stu2; 变量名 直接定义 无分号 struct 无类型名 d int num; char name 305; char sex; int age; float score; stul, stu2; 四.说明 变量名 注意结构体类型与结构体变量的不同含义:比 struct student stul stu2 较 2.结构体的成员可以是另一个结构体类型; 即:结构体中又包含结构体
第11章第2节 二. 同时定义 struct student { int num; char name[30}; char sex; int age; float score;} stu1, stu2; 变量名 类型名 三. 直接定义 无分号 struct { int num; char name[30}; char sex; int age; float score;} stu1, stu2; 无类型名 变量名 四. 说明 1. 注意结构体类型与结构体变量的不同含义; struct student stu1,stu2; int a, b; 比 较 2. 结构体的成员可以是另一个结构体类型; 即: 结构体中又包含结构体
第11章第2节 exame 如 num name sex age EnglishMath struct score 或: float english 定义类型 float math; 3; struct student struct student fint num; fint num; char name 30; char name 30l; char sex: char sex; int age; int age; struct score exame;使用已定义 f at exame 2; stul stu2 3 stul, stu2; 的结构体 3.成员名与程序中其他变量同名时,互不干抚
第11章第2节 age exame English Math 如: num name sex struct score {float english; float math;}; struct student {int num; char name[30]; char sex; int age; struct score exame; } stu1,stu2; struct student {int num; char name[30]; char sex; int age; float exame[2]; } stu1,stu2; 或: 3. 成员名与程序中其他变量同名时, 互不干抚。 定义类型 使用已定义 的结构体
第11章第3节 s113结构体变量的引用 引用原则—只能引用成员,不能引用整个结构体变量 方法:结构体变量名成员名 成员运算符。优先级最高,左结合 例如:stu1.num 引用结构体变量stu中的成员num 二使用—结构体变量中成员的使用与一般的变量(或数组)相同。 1.输出 printf("%od, %S, %c, %d, %fn", stul num, stul name, stul sex, stul age, stul score); printi(“%d,%s,%oc,%d,%fn”,stul); 2.输入 scanf("%d, %S, %c, %d,%f\n",&stul num, stul name &stul sex, &stul age, stul score) scanf(“%d,%s,%c,%d,%fn”,&stu1); 3.运算 stu2 score=stul score strcpy(stu2 name stul name); sum=stul score+stu2score;
§11.3 结构体变量的引用 第11章第3节 一. 引用原则 ——只能引用成员,不能引用整个结构体变量 方法: 结构体变量名. 成员名 成员运算符。优先级最高,左结合 例如: stu1. num —— 引用结构体变量stu1中的成员num 二. 使用 ——结构体变量中成员的使用与一般的变量(或数组)相同。 1. 输出 printf(“%d,%s,%c,%d,%f\n”, stu1.num, stu1.name, stu1.sex, stu1.age, stu1.score); printf(“%d,%s,%c,%d,%f\n”, stu1); 2. 输入 scanf(“%d,%s,%c,%d,%f\n”, &stu1.num, stu1.name, &stu1.sex, &stu1.age, stu1.score); scanf(“%d,%s,%c,%d,%f\n”, &stu1); 3. 运算 stu2. score=stu1.score; strcpy (stu2.name, stu1.name); sum=stu1.score+stu2.score;