嵌入式C程序设计基础-第6章-结构体、共用体、枚举类型
C++程序设计(第3版)第6章 结构体和共用体
6.1.2 结构体变量的定义与初始化
1.先定义结构体类型,再定义结构体变量 例如: struct student { char num[10]; //学号 char name[10]; //姓名 char sex; //性别 float score; //成绩 }; struct student stu1,stu2;
return
6.1.3 结构体变量的引用
结构体变量是作为一个整体被定义的,但一般不能作为一 个整体进行访问,只能通过结构体变量的成员来访问它。 引用结构体变量的语法格式: 结构体变量.成员名 说明:符号“.”是成员运算符,用于访问一个结构体变量 中的某个成员。 对结构体中的成员可以像一般变量一样进行各种运算。 例如:struct student stu1; stu1.sex='m'; 若结构体成员本身又是一个结构体类型,则要通过若干个 成员运算符“.”,访问到最低一级的成员。
【例6.1】定义结构体类型employee,包括工号、姓名、工资3个成员,定义两个该 类型的变量,并对其中一个员工信息进行初始化,输入另一个员工的信息,最后 输出这两个员工的信息。 #include<iostream> 运行结果: 输入“1002”“王芳”“5000” using namespace std; 1001 李明 2800 struct employee 1002 王芳 5000 { char num[10]; char name[10]; double salary; }; struct employee emp1={"1001","李明",2800},emp2; int main() { cin>>emp2.num>>>>emp2.salary; cout<<emp1.num<<'\t'<<<<'\t'<<emp1.salary<<endl; cout<<emp2.num<<'\t'<<<<'\t'<<emp2.salary<<endl; return 0; return }
结构体、共用体与枚举
9.1.2 结构体变量的说明
结构体变量的说明有三种方法: 1.用已定义的结构体类型名定义变量。
例如: struct person student,worker;
/* 定义了两个结构体变量student和worker */
用上面的结构体类型还可再定义变量: struct person men,women;
student.birthday.year
/* 基本成员year ,相当于一个整型变量 */
9.1.4 结构体变量的引用
2.结构体变量的赋值、输入和输出 结构体变量的输入和输出也都只能对其成员进行
3.同一类型的结构体变量可相互赋值 由于结构体各个成员的类型不同,对结构体变量 赋值也只能对其成员进行 同类型的两个结构体变量之间可以整体赋值 (请比较数组之间不能整体赋值) stud1=stud 2;
9.1 结构体
【问题】什么是结构体类型?什么是结构体变量?结 构体类型与数组类型有什么区别和联系?
姓名 年龄 性别 身份 民族 住址 电话
证号
号码
(字符数组) (整型) (字符) (长整型) (字符) (字符数组) (长整型)
9.1.1 结构体类型的定义
结构体类型的定义形式为: struct 类型名 {成员项表列}; 例如包含上图中全部类型数据的结构体类型的定义如下: struct person /* 结构体类型名 */ { char name[20]; /* 以下定义成员项的类型和名字 */ int age; char sex; long num; char nation; char address[20]; long tel; };
本课件PPT仅供大家学习使用 学习完请自行删除,谢谢! 本课件PPT仅供大家学习使用 学习完请自行删除,谢谢! 本课件PPT仅供大家学习使用 学习完请自行删除,谢谢! 本课件PPT仅供大家学习使用 学习完请自行删除,谢谢!
结构体、共用体、枚举和ty
每个数组元素都是一个共用体变 量,可以存储不同类型的值。
共用体数组在内存中占用的空间 等于数组长度乘以共用体的大小。
共用体指针
共用体指针是指向共用体类型数据的 指针。
使用共用体指针可以方便地处理不同 类型的数据,提高代码的灵活性和效 率。
通过共用体指针可以访问共用体的成 员,并对其进行操作。
03
05
结构体、共用体、枚举和ty的应用
在数据结构中的应用
结构体
用于表示复杂的数据结构,如点、线、面等几何形状,或学生、 教师等具有多个属性的实体。
共用体
用于节省存储空间,当多个数据项不会同时出现时,可以使用共 用体来存储它们,以减少内存占用。
枚举
用于定义一组命名的常量,增加代码的可读性和可维护性。
ty类型变量的使用可以提高 代码的可读性和可维护性, 同时方便进行数据类型转换
和运算。
在定义ty类型变量时,需要注 意变量的作用域和生命周期, 避免出现变量名冲突和内存泄
漏等问题。
ty类型数组
1
ty类型数组是使用ty类型定义的数组,其定义方 式与基本数据类型数组的定义方式相同。
2
通过定义ty类型数组,可以方便地处理一组相同 类型的数据,提高代码的可读性和可维护性。
存空间大小以及可以进行的操作等。
ty类型的定义使用关键字`typedef`,语法格式为 `typedef 原有类型 别名;`,其中原有类型可以是基本
数据类型、结构体、共用体、枚举等。
通过定义ty类型,可以简化代码,提高代码的可读性 和可维护性。
ty类型变量
ty类型变量是使用ty类型定义 的变量,其定义方式与基本数 据类型变量的定义方式相同。
结构体指针
结构体、共用体和枚举型
优缺点比较
优点
节省内存空间;可以方便地处理多种数据类型。
缺点
由于所有成员共享同一块内存空间,因此每次只能使用其中一个成员;使用不 当可能导致数据丢失或混乱。
优缺点比较
优点
增加了代码的可读性和可维护性;提供了类型检查,减少了 错误的可能性。
缺点
相对于整数类型,枚举型的处理速度较慢;占用内存空间相 对较大。
枚举型
枚举型通常用于定义一组命名的 整数值,这些值可以增加代码的 可读性和可维护性。例如,可以 使用枚举型来定义一周中的天数 或一个月中的月份。
优缺点比较
优点
可以方便地组合和管理多个不同类型 的数据;提供了数据的封装和隐藏, 增加了代码的安全性;可以方便地传 递和返回多个值。
缺点
相对于基本数据类型,结构体的处理 速度较慢;占用内存空间相对较大。
共用体在节省内存空间中的应用
节省存储空间
共用体允许在相同的内存位置存储不同的数据类型,通过共享内 存空间来节省存储空间。
实现多态性
共用体可以在不同的上下文中表示不同的数据类型,从而实现一 种多态性的效果。
处理异构数据
当需要处理不同类型的数据时,可以使用共用体来统一表示这些 数据,简化数据处理的过程。
实现多态性
通过共用体,可以在相同 的内存空间中存储不同类 型的数据,从而实现多态 性。
方便数据处理
在某些情况下,使用共用 体可以更方便地处理数据。
共用体的声明与定义
声明
定义
初始化
访问成员
注意事项
在C语言中,可以使用 `union`关键字来声明一 个共用体。例如: `union Data { int i; float f; char str[20]; };`
C语言知识总结——宏,枚举,结构体,共用体
C语言知识总结——宏,枚举,结构体,共用体1、define宏定义以#号开头的都是编译预处理指令,它们不是C语言的成分,但是C程序离不开它们,#define用来定义一个宏,程序在预处理阶段将用define定义的来内容进行了替换。
因此在程序运行时,常量表中并没有用define定义的常量,系统不为它分配内存。
define定义的常量,预处理时只是直接进行了替换,,它用来将一个标识符定义为一个字符串,该标识符被称为宏名,被定义的字符串称为替换文本。
,因此在编译时它不对宏的定义进行检查,作用域不影响对常量的访问。
它的常量值只能是字符串或数字。
该命令有两种格式:一种是简单的常量宏定义, 另一种是带参数的宏定义。
不带参数的宏:#define< 名字 >< 值 > 要注意,没有结尾的分号,因为不是C的语句,名字必须是一个单词,值可以是各种东西,宏定义是用宏名来表示一个字符串,在宏展开时又以该字符串取代宏名,这只是一种简单的代换,字符串中可以含任何字符,可以是常数,也可以是表达式,预处理程序对它不作任何检查。
如有错误,只能在编译已被宏展开后的源程序时发现。
注意.宏定义不是说明或语句,在行末不必加分号,如加上分号则连分号也一起置换。
宏定义其作用域为宏定义命令起到源程序结束。
如要终止其作用域可使用#undef命令带参数的宏:像函数的宏,一般的定义形式:带参宏定义的一般形式为:「#define 宏名」(形参表)字符串,也是没有结尾的分号,可以带多个参数,#define NB(a,b)((a)>(b)?(b):(a)), 也可以组合(嵌套)使用其他宏,注意带参数宏的原则一切都要有括号,参数出现的每个地方都要有括号。
带参数的宏在大型的程序的代码中使用非常普遍,在#和##这两个运算符的帮助下可以很复杂,如“产生函数”,但是有些宏会被inline函数代替(C++的函数)使用宏好处:“提高运行效”。
定义的标识符不占内存,只是一个临时的符号,预编译后这个符号就不存在了。
结构体、共用体和枚举类型数据余
03
枚举类型概述
枚举类型定义与特点
定义:枚举类型是一种用户自定义的数 据类型,它允许用户为一组整数值分配 有意义的名称。
枚举类型中的标识符具有常量性质,不 能被赋值。
枚举类型属于构造类型,而不是基本类 型。
特点
枚举类型的变量只能取枚举说明结构中 的某个标识符所代表的值。
枚举变量声明与赋值
声明
枚举变量的声明与结构体变量的声明类似,需要指定枚举类型名称和变量名称。
通过函数和模块化设计,将重复的代码和数 据封装成独立的函数或模块,避免数据的重 复出现。例如,将常用的功能和数据处理过 程封装成函数库或模块,提高代码的复用性 和可维护性。
05
结构体、共用体和枚举类型在数据 余处理中应用
结构体在数据余处理中作用
数据整合
结构体可以将多个不同类型的数据整合在一 起,形成一个新的数据类型,方便数据的统 一管理和处理。
赋值
枚举变量可以被赋予枚举说明结构中的某个标识符所代表的值,也可以被赋予 与这些值对应的整数值。
枚举类型应用场景
用于表示一组固定的、预定义 的常量值,如一周的七天、颜
色名称等。
用于替代魔法数字,提高代码 的可读性和可维护性。
用于定义状态机中的状态,使 得状态转换更加清晰和易于理 解。
用于实现位标志,通过组合不 同的标志位来表示不同的选项 或状态。
提高可读性
枚举类型的名称通常具有描述性,可以提高代码的可读性和可维 护性。
06
总结与展望
结构体、共用体和枚举类型重要性总结
结构体(Struct)重要性 结构体允许将多个不同类型的数据组合成一个单一类型,使得数据处理更为方便。
结构体可以提高代码的可读性和可维护性,降低出错率。
C语言程序设计——结构体和共用体(完整版)
printf(“name\tage\tjob\tclass/office\n”); for(i=0;i<PN;i++) {if(body[i].job==„s‟) printf(“%s\t%d\t%3c\t%d\n”,body[i].name, body[i].age,body[i].job,body[i].units.class); else printf(“%s\t%d\t%3c\t%s\n”,body[i].name, body[i].age,body[i].job,body[i].units.office); } }
birthday num name sex age month day year addr
§12.3结构体数组
结构体数组的每一个元素都是具有相同结构类型 的结构体变量。 例:struct student {int num; char name[20]; float score; }stu[3]; 其中,定义了一个结构体数组stu,共有3个元素, 每个元素都具有struct student的结构形式。
§12.6共用体
共用体(也称为联合)也是一种构造的数据类型。 共用体是将不同类型的数据组织在一起共同占用 同一段内存的一种构造数据类型。 例如,在校学生和教师都填写以下表格: 姓名 年龄 职业 单位 其中,职业分两类:教师和学生; 而单位一栏里,学生填写班级编号(整型类型), 教师填写某系某教研室(整型类型) 。
§12.7枚举数据类型
当某些变量仅由有限个数据值组成时,通常用枚 举类型来表示。 所谓枚举是指将变量的值一一列举出来,变量的 值只限于列举出来的值的范围内。如一周只有7天, 一年只有12个月等等。
注意:枚举类型是一种基本数据类型,而不是一 种构造类型。关键字为enum。
C程序设计ch11.结构体、联合共用体与枚举类型
初始化:
struct students { int no; char name[15]; char sex; float aver; } stu[20]={{101, “Wan CX”, „m‟, 93.42}, {102, “Liao WF”, „f ‟, 85.68}, ……}; name
Wan CX Liao WF …
num name sex score[0] score[1] score[2] … score[9] aver
stu[0] stu[1] … stu[20]
[例] 计算学生的平均成绩。 num name sex score[0] score[1] score[2] … score[9] aver 1401 25BF f 89.5 93.5 86.0 … 78.0 88.42 stu[0] 注意结构成员数据的输入方法: 1402 A5D6 m 99.0 98.0 90.0 … 88.5 93.68 stu[1] 一律采用字符串方式输入,再利用函数转换数据类型。 … … … … … … … … … … void main() { 1420 6D58 int m k, j; 76.5 float 65.0 … 56.0 65.37 stu[20]char s[80]; sum; 74.0
#include <stdio.h> struct students { int num; // 学号 char *name; // 姓名 char sex; // 性别 float score[10]; // 10门课程成绩 float aver; } stu[20]; // 用于存放20个学生的成绩表
成绩表
struct scores { char grade[20]; long number; char name[20]; float os; float datastru; float compnet; };
结构体、共用体、枚举
最终排名Time Limit: 1000MS Memory limit: 65536K题目描述第四届山东理工大学ACM网络编程擂台赛比赛完后需要产生一个最终排名,排名按照题数多少来决定。
但是有太多的队伍参与,手动计算排名已经不能满足比赛的需求。
现在有一份名单记录各个队伍的ID和做出的题目数,需要你写一个程序,产生最终的排名。
为了简化题目,这里的排名规则为:做出题目数量多的队伍排在前面,如果题数相等,保持输入时的相对顺序不要改变。
输入第一行包含一个正整数T( 1≤T≤15),表示有T组测试数据。
每组数据第一行有一个正整数N(1< N≤10000),表示队伍数量。
接下来N 行包含两个整数,1≤ID≤10^7, 0≤M≤100。
ID为队伍的编号,M为做出的题数。
输出每组数据输出包含N行,第i行有两个整数,ID和M表示排在第i位的队伍的ID和做出的题数。
示例输入181 216 311 220 33 526 47 122 4示例输出3 526 422 416 3 20 3 1 2 11 2 7 1#include <stdio.h>void main(){struct team{int ID;int M;}t[10000],T;int N,n,i,j,k,time=0;scanf("%d",&N);while(time!=N){scanf("%d",&n);for(i=0;i<n;i++){scanf("%d%d",&t[i].ID,&t[i].M);}for (j=1; j<n; j++){for (k=0; k<n-j; k++){if(t[k].M<t[k+1].M){T=t[k];t[k]=t[k+1] ;t[k+1]=T;}}}for(i=0;i<n;i++){printf("%d %d\n",t[i].ID,t[i].M);}time++;}}英文金曲大赛Time Limit: 1000MS Memory limit: 65536K题目描述我们在“渊子数”的题目中已经了解了渊子是个什么样的人了,他在大一的时候参加过工商学院的“英语聚乐部”。
结构体与共用体-枚举
枚举常量是枚举类型的成员,每个枚举常量都有一个整数值与之对应,默认从0 开始,也可以显式指定。
枚举变量
枚举变量的声明
使用枚举类型名称声明枚举变量,例如`enum Color color;`。
枚举变量的赋值
枚举变量只能赋值为枚举常量列表中定义的整数 值或对应的枚举常量名称。
枚举变量的使用
嵌套共用体
嵌套共用体是一个共用体内部包含另一个共 用体或结构体的情况。
共用体变量
声明
共用体变量的声明方式与结构体 变量类似,需要使用共用体类型 名来定义变量。
访问
访问共用体变量的成员需要使用 成员访问运算符(.),且每次只 能访问一个成员。
01
02
定义
共用体变量是用来存储共用体类 型数据的变量。
03
结构体与共用体-枚举
目录
• 结构体概述 • 共用体概述 • 枚举概述 • 结构体、共用体与枚举的关系 • 结构体、共用体与枚举的应用实例 • 总结与展望
01
结构体概述
定义与特点
01
结构体是一种用户自定义的数据类型,允许将不同类型的数据 组合成一个有机的整体。
02
结构体中的数据可以是基本数据类型,也可以是其他结构体类
未来发展趋势预测
01 02
结构化数据处理
随着大数据时代的到来,处理结构化数据变得越来越重要。结构体作为 一种表示结构化数据的数据类型,将在数据处理和分析领域发挥越来越 重要的作用。
内存优化
共用体可以在相同的内存位置存储不同的数据类型,从而节省内存空间。 在内存资源紧张的情况下,共用体的使用将变得更加重要。
04
当需要提高代码的可读性和可维护性时,可以使用枚举类型来代替一 些硬编码的常量值。
C C++语言程序设计第6章 结构体共用体和枚举-精选文档
fang",'F',92.5}}
101 Zhao lei
M 45 102 Sun hui M 62.5 103 Li fang F 92.5
6.3 结构体数组
24
6.3.3 结构体数组的初始化
元素的个数可以省略,根据赋初值时结构 体常量的个数确定数组元素的个数 。
内层的大括号只是为了阅读程序的方便, 可以省略。
则将无初值对应的成员赋以0值。
char *name; 如果初值个数多于结构体成员个数,
char sex; 则编译出错。
float score;
}stu1, stu2,stu3={102,"Zhang ping",'M',78.5};
6.2 结构体变量的定义、引用和初始化
20
6.2.3 结构体变量的初始化
6.2 结构体变量的定义、引用和初始化
16
6.2.2 结构体变量引用
结构体变量成员引用的一般形式:
“.”是分量运 算符,运算级
别最高。
结构体变量名.成员名
struct date { int year, month, day;}; struct student
结构体变量的各个成员可 进行何种运算,由该成员
6.2 结构体变量的定义、引用和初始化
19
6.2.3 结构体变量的初始化
struct 结构体名 结构体变量={初始化列表};
【例6.3】结构体变量的初始化、赋值、输入和输出 。
#include "stdio.h"
struct student /*定义结构体*/
如果初值个数少于结构体成员个数,
{ int num;
第6讲 嵌入式C语言_常见数据结构及算法
Page 14
例如: union utype { int i; char ch; long l; char c[4]; };
定义了一个union utype共用体 类型,共用体类型定义不分配内存 空间,只是说明此类型数据的组成 情况。
Page 15
2、共用体变量的定义
• 利用已定义的共用体类型名定义变量 union 共用体名 变量名表; 例如: union utype u1,u2;
num name birthday month day year
例 struct student { int num; char name[20]; struct date { int month; int day; int year; }birthday; }stu;
printf(“%d”,sizeof(struct student)); sizeof求结构体类型数据的长度: printf(“%d”,sizeof(stu));
(2)共用体变量中起作用的成员是最后一次存放的成员,在存 入一个新的成员后原来的成员就失去作用 u1.i=24; u1.ch=’a’; u1.f=12.45; (3)共用体变量的地址和它的各成员的地址都是用一地址 例如:&u1、&u1.i、&u1.ch、&u1.f都是同一地址值。 (4)不能对共用体变量名赋值,不能企图引用变量名来得到一 个值,也不能在定义共用体变量时对所有成员进行初始化。
week_t week = SUN_DAY;
printf(“week is %d\n”, week );
printf(“sizeof(week_t) is %d\n”, sizeof(week_t));
week is 0
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言程序设计
第6章 结构体、共用体、枚举类型
【学习内容】
【学习目标】
6.1 结构体类型概述
1.掌握结构体类型的Байду номын сангаас明方法;
6.2 结构体变量
2.掌握结构体变量的定义、初始化及成员
6.3 结构体数组
引用方法;
6.4 结构体指针
3.掌握结构体数组及应用;
6.5 共用体类型
4.掌握结构体指针及应用;
6.6 枚举类型
本书可作为高等院校电子信息类、计算机类、自动化类、机电 类专业的C语言教材,也可供从事嵌入式系统与物联网技术开发的 工程技术人员参考。
C语言程序设计
教学内容:
第1章:C语言语法基础 第2章:C程序设计基础 第3章:数组 第4章:函数 第5章:指针 第6章:结构体、共用体、枚举类型 第7章:文件 第8章:嵌入式技术基础实践方法
【例6.1】结构体变量的初始化和引用。
C语言程序设计
6.3 结构体数组
6.3.1一定个义结构结体构变体量数可组以存的放方一法名学生的信息,而结构体数组可以存放多名学生的
信息,结构体数组中的每个元素都是一个结构体类型的数据。
定义的结构体数组stu,共有5个元素,stu[0]~stu[4]。每个数组元素都是struct Student结构体类型的。
这种方式,声明类型和定义变量一起 进行,能直接看到结构体的结构,较为直 观,在编写小程序时常用此方法。
C语言程序设计
6.2 结构体变量
6.2.1 定义结构体变量的方法
3、不指定结构体名而直接定义结构体变量
这种方式,由于没有结构体名,因此 不能再用此结构体类型去定义其他变量, 实际应用较少。
C语言程序设计
C语言程序设计
6.4 结构体指针
6.4.1结指构体向指结针构是体用变来指量向的结指构针体数据(结构体变量或结构体数组元素)的指针,
若把一个结构体数据的起始地址赋给一个指针变量,则该指针变量就指向这个结构 体数定据义。结构体指针变量的一般形式为:
struct 结构体名 *结构体指针变量名;
例如: struct Student *pstu; 指针变量pstu就可以用来指向struct Student类型的变量或数组元素。
C语言程序设计
6.2 结构体变量
6.2.3 结构体变量的引用
在定义结构体变量以后,便可引用该变量。C允许具有相同类型的结构体变量相互赋值; 而对结构体变量的输入、输出及各种运算都是通过结构体变量的成员来实现的。
结构体变量成员的引用形式: 结构体变量名.成员名
例如: stu1.stu_ID stu2.sex
即第一名学生的学号 即第二名学生的性别
成员(分量)运算符 “.”的优先级最高。stu1.stu_ID作为一个整体看待。
若成员本身又是一个结构体类型,则必须逐级找到最低级的成员才能使用。 例如:stu1.birthday.month 为第1名学生出生的月份
C语言程序设计
6.2 结构体变量
6.2.3 结构体变量的引用
C语言程序设计
C语言程序设计
C语言程序设计
C语言既是通用计算机软件设计的基础语言,也是当前嵌入式 软件设计的主流语言。
本书特色:C语言知识点描述言简意赅,例题浅显易懂,突出 模块化程序设计思想,注重软件设计工程规范。内容组织由简到 难、循序渐进,灵活采用对比法、类比法、启发法、实验法等多 种教学方法。为了体现C程序模块化设计的具体应用,给出了基于 构件化的嵌入式软件设计思想、方法和应用案例。
6.2 结构体变量
6.2.1 定义结构体变量的方法
说明:
(12)结构体中的成员名也可与以程是序一中个其结它构变体量类同型名的,变但量二。者例代如表:不同的对象,互不干扰。
C语言程序设计
6.2 结构体变量
6.2.2 结构体变量的初始化
和其他类型的变量一样,结构体变量可以在定义时进行初始化赋值。初始化 列表是用花括号括起来的一些常量,这些常量依次赋给结构体变量中的成员。
为解决这一问题,C语言允许用户自己建立由不同类型(或同类型)数据组成 的组合型数据结构——“结构体”。
C语言程序设计
6.2 结构体变量
6.2.声1 明定的义结构结体构类体型,变仅量相的当方于一法个模型,其中并无具体数据,系统并不对其分配内存空
间定。义1、系结统构先只体声对类明变型结量的构或变数量体组或类分数型配组,内。再存空定间义,结因构此体为了变能量在程序中使用结构体类型的数据,应当
C语言程序设计
6.4 结构体指针
6.4.2 指向结构体数组的指针
当结构体指针变量指向结构体数组中的某个元素时,结构体指针变量的值是 该结构体数组元素的起始地址。
【例6.5】用结构体指针变量输出结构体数组。
5.掌握共用体、枚举类型及应用;
6.7 用typedef声明新类型名 6.掌握typedef声明新类型名的方法;
6.8 链表及其操作
7.掌握链表的概念及其操作方法。
C语言程序设计
6.1 结构体类型概述
前面学习的数组是将相同类型的多个数据组合在一起。 如果一名学生的信息:学号为整型,姓名为字符型,性别为字符型,成绩为实型,能 否用数组存放该学生的信息呢?
C语言程序设计
6.4 结构体指针
6.4.1 指向结构体变量的指针
【例6.4】通过3种方式访问结构体变量中的成员。
若结构体指针变量指向了一结构体数据(结 构体变量或结构体数组元素),则访问结构体 数据的成员有3种形式:
(1)结构体变量名.成员名 或 结构体数组元 素名.成员名
(2)(*结构体指针变量名).成员名 (3)结构体指针变量名->成员名
C语言程序设计
6.3 结构体数组
6.3.2 结构体数组的初始化
对结构体数组,可以进行初始化赋值。 例如:
C语言程序设计
6.3 结构体数组
6.3.2 结构体数组的应用
【例6.2】计算学生的平均成绩,并统计不及格的人数。
6.3.2 结构体数组的应用
【例6.3】建立同学通讯录。
C语言程序设计
6.3 结构体数组
这种方式,声明类型和定义变量分离,在 声明类型后可以随时定义变量,使用灵活。
定义的两个变量stu1和stu2都是struct Student结构体类型的,都具有struct Student类 型的结构:
C语言程序设计
6.2 结构体变量
6.2.1 定义结构体变量的方法
2、在声明结构体类型的同时定义结构体变量