教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 实用模板 >

第八章 结构体与共用体-1(结构体变量、结构体数组及数组做函数参

来源:网络收集 时间:2026-09-07
导读: C语言 第8章 结构体与共用体 ( 1) C语言 内容提要结构体类型与结构体变量 结构体数组 结构体数组做函数参数 2010-6-23 C语言 问题的提出对数据类型的回顾: 对数据类型的回顾: int a; ; float b; char c;以上三种类型是系统已经定义好的数据类型, 以上三种类

C语言

第8章 结构体与共用体 ( 1)

C语言

内容提要结构体类型与结构体变量 结构体数组 结构体数组做函数参数

2010-6-23

C语言

问题的提出对数据类型的回顾: 对数据类型的回顾: int a; ; float b; char c;以上三种类型是系统已经定义好的数据类型, 以上三种类型是系统已经定义好的数据类型,其特性不 能被用户改变. 能被用户改变. 问题: 问题: 可否用一种数据类型将一个学生"学号" 可否用一种数据类型将一个学生"学号","姓名", 姓名" 性别" 成绩" 家庭住址"等信息全部表示出来? "性别","成绩","家庭住址"等信息全部表示出来?2010-6-23 3

C语言

⒈ 结构体类型的引入例如 1: : struct student { int num; char name[20]; char sex; int age; float score; char addr[30];2010-6-23

⒉ 结构体类型的声明struct 结构体名 { 成员表列 }; ;

成员的声明: 成员的声明: 类型名

成员名; 成员名;4

};

C语言

⒉ 结构体类型的声明例如 2: : struct birthday { int month; int day; int year; }; 成员的声明: 成员的声明: 类型名 成员名; 成员名; }; ; struct 结构体名 { 成员表列

2010-6-23

C语言

定义结构体类型变量的方法⒈ 先声明结构体类型再定义变量名例如: 例如: struct student { int num; char name[20]; char sex; int age; float score; char addr[30]; }; struct student student1;2010-6-23

变量定义方法的回顾: 变量定义方法的回顾:

int a; a=3; float b; b=3.5; char c; c='a';

C语言

num student1: 10010

name LiFun

sex M

age 18

score 87.5

addr Beijing

假设int型数据在内存中占 字节,float占 个字节,char占 假设int型数据在内存中占4字节,float占4个字节,char占1 型数据在内存中占4 个字节,结构体类型变量 变量student1占多少个字节 占多少个字节? 个字节,结构体类型变量student1占多少个字节?

2010-6-23

C语言

⒉ 在声明类型的同时定义变量 一般形式: 一般形式: struct 结构体名 { 成员表列 }变量名表列; 变量名表列; 变量名表列 例如: 例如: struct birthday { int month; int day; int year; }tom; 2010-6-23

⒊ 直接定义结构体类型变量 一般形式: 一般形式: struct { 成员表列 }变量名表列; 变量名表列; 变量名表列 例如: 例如: struct { int month; int day; int year; }tom ,peter;

C语言

4. 结构体类型的成员也可 以是一个结构体变量. 以是一个结构体变量. 例如: 例如: 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]; }; struct student student1; sex age birthday addr month day year9

num2010-6-23

name

C语言

结构体变量的初始化struct date { int month; int day; int year; 回顾: 回顾:对整型变量的初始化 }; name: Mary int main(void) int a=3; { struct student sex: F { char name[20]; char sex; birthday:10 23 1985 struct date birthday; }a = {"Mary", 'F', 10, 23, 1985}; printf("name: %s\nse

x: %c\nbirthday:%d %d %d\n", http://www.77cn.com.cn, a.sex, a.birthday.month, a.birthday.day, a.birthday.year); return 0; }

Mary2010-6-23

F

birthday 10 23 198510

C语言

结构体变量的引用引用结构体变量需遵守的规则: 引用结构体变量需遵守的规则: ⑴ 不能将一个结构体变量作为一个整体输入输出,只能对结 不能将一个结构体变量作为一个整体输入输出, 构体变量中的各个成员分别进行输入和输出. 构体变量中的各个成员分别进行输入和输出.引用结构体 变量中成员的方式: 变量中成员的方式: 结构体变量名 . 成员名 例如: 例如: printf("name: %s\nsex: %c\nbirthday:%d %d %d\n", a); 错! a.sex='m'; 正确! 正确! a.birthday.year=1988;2010-6-23 11

C语言

⑵ 如果成员本身又属于一个结构体类型,则要用若干个成员 如果成员本身又属于一个结构体类型, 运算符,一级一级地找到最低一级的成员. 运算符,一级一级地找到最低一级的成员.只能对最低级 的成员进行赋值或存取以及运算. 的成员进行赋值或存取以及运算. 例如: 例如: a.birthday.year=1980 a.birthday.day=23 a.birthday.month=10

对结构体变量的成员可以像普通变量一样进行各种运算. ⑶ 对结构体变量的成员可以像普通变量一样进行各种运算.2010-6-23 12

C语言

例如: 例如: student2.score=student1.score; sum=student1.score+student2.score; student1.age++; ++student2.age;

2010-6-23

C语言

课堂练习: 课堂练习: 1.设有以下说明语句: 设有以下说明语句: struct ex { int x; float y; char z; } example; 则下面的叙述中不正确的是( 则下面的叙述中不正确的是( example是结构体类型名 B) example是结构体类型名 C) x, y, z都是结构体成员名 z都是结构体成员名 ex是结构体类型名 D) struct ex是结构体类型名2010-6-23 14

).

struct是结构体类型的关键字 A) struct是结构体类型的关键字

C语言

结构体数组⒈ 结构体数组的定义 数组中的每一个元素都是结构体类型的数据, 数组中的每一个元素都是结构体类型的数据,则称这样 的数组为结构体数组. 的数组为结构体数组. ⒉ 定义结构体数组

2010-6-23

C语言

方法1

struct student { int num; char name[20]; char sex; int age; float score; char addr[30]; }; struct student stu[2]; name sex age score addr

num stu[0] num2010-6-23

name

sex

age

score

addr16

stu[1]

…… 此处隐藏:1723字,全部文档内容请下载后查看。喜欢就下载吧 ……
第八章 结构体与共用体-1(结构体变量、结构体数组及数组做函数参.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/2325155.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)