第10章 结构、共用及枚举

时间:2026-01-19

结构、共用及枚举

复合数据类型数组 指针 结构体 共用体) 联合体 (共用体 共用体 枚举

C 程序设计基础

结构、共用及枚举

结构、 第九讲 结构、共用及枚举学习目标掌握结构体类型的声明、 掌握结构体类型的声明、结构体变量的定 结构体类型的声明 义及使用 结构体与指针的典型应用) 了解单链表的概念 (结构体与指针的典型应用 结构体与指针的典型应用 了解共用体 共用体类型的声明及变量的定义 了解共用体类型的声明及变量的定义 了解枚举类型的概念、 枚举类型的概念 了解枚举类型的概念、定义及使用 了解自定义类型 自定义类型的定义与使用方法 了解自定义类型的定义与使用方法

C 程序设计基础

结构、共用及枚举

9.1 结构体结构体类型的定义 结构体变量的定义及初始化 结构体成员的引用 结构体数组 结构体指针

C 程序设计基础

结构、共用及枚举

学生成绩表学号 c001 c002 c003 c004 c005 c006 姓名 Tom Jack Rose David Mike John 出生年份 1985 1983 1986 1985 1986 1984 性别 M M F M M F 数学 88 89 77 72 54 70 英语 90 58 83 63 62 65 计算机 88 80 74 77 58 85

C 程序设计基础

结构、共用及枚举

struct cj_list struct DATE date; { char num[10]; 结构体类型的性质:不同数据类型组成的集合体 结构体类型的性质: char name[10] ; 定义格式 int year ; struct DATE struct 结构体名 char sex ; { { float math ,English ,computer ; int year; year; 类型1 成员名1; 类型1 成员名1; }; int month; month; 类型2 成员名2; 类型2 成员名2; int day; day; ┆ }; 类型n 成员名n 类型n 成员名n; };

结构体类型的定义

注意: 注意:– 定义结构体类型并不分配内存,定义变量时分配 定义结构体类型并不分配内存, – 结构体成员可以是与本结构体完全无关的其他结构体类 型,但不能是自身C 程序设计基础

结构、共用及枚举

结构体变量的定义与初始化结构体类型的变量定义按照结构体类型分配实际的存储空间 按照结构体类型分配实际的存储空间 声明格式: 变量名表; 声明格式: struct 结构体名 变量名表 例:struct DATE date,brithday;

可 省 略

结构体类型变量的初始化

struct DATE { int year; year; int month; month; int day; day; } date,brithday; ;

按声明顺序逐成员进行 例: struct DATE date = { 2008, 8, 8 }; struct cj_list stu1={"c001","Tom",1990,'M',88,90,88}; 说明: 说明:初始化数据必须与结构体类型声明的类型与顺序完 全一致, 全一致,各个成员初始值之间用逗号分隔C 程序设计基础

结构、共用及枚举

结构体变量所占内存空间结构体变量所占内存空间是其各个成员所占内存空间之和 结构体变量所占内存空间是其各个成员所占内存空间之和。 各个成员所占内存空间之和 例:struct cj_list { char num[10]; char name[10] ; int year ; char sex ; float math ,English ,computer ; }stu1,stu2,stu3; 程序中,

可用sizeof(变量名或类型标识符),求得结构体变量所 占内存空间的大小。例如,printf("%d",sizeof(stu1)); printf(“%d”,sizeof(struct cj_list));

C001C 程序设计基础

Tom

1985 M 88

90

887

结构、共用及枚举

结构体成员的引用成员选择操作符“ ” 通过结构体变量 成员选择操作符“.” --- 通过结构体变量 year 格式:结构体变量名.成员名 格式:结构体变量名 成员名 month 例:struct DATE date; day date.year = 2008; 成员选择操作符“ ” 通过结构体指针 成员选择操作符“–>” --- 通过结构体指针 格式:结构体变量名–>成员名 格式:结构体变量名 成员名 例:struct DATE *p = &date; p–>year = 2008; 说明: 说明: p–>year ≡ (*p).yeardate

C 程序设计基础

结构、共用及枚举

编写程序定义一个结构体变量, 例10.1 编写程序定义一个结构体变量,并从键盘输入一组数 计算出总分, 据,计算出总分,并输出所有信息main() { struct cj_list { char num[10]; char name[10]; int year; char sex; float math, English, computer, total; }stu1; printf ("\n input name, num, year, sex, math, English, computer\n"); scanf("%s%s%d%c%f%f%f",http://www.77cn.com.cn,stu1.num,&stu1.year, &stu1.sex,&stu1.math,&stu1.English,&http://www.77cn.com.cnputer); stu1.total=stu1.math+stu1.English+http://www.77cn.com.cnputer; printf ("姓名 姓名:%s,学号 学号:%s,出生年份 出生年份:%d,性别 性别:%c,数学 数学:%f,英语 英语:%f, 姓名 学号 出生年份 性别 数学 英语 计算机:%f,总分 总分:\n%f",http://www.77cn.com.cn,stu1.num,stu1.year, 计算机 总分 stu1.sex,stu1.math,stu1.English,http://www.77cn.com.cnputer,stu1.total); }C 程序设计基础

结构、共用及枚举

结构体数组是结构体和数组的结合 由同一结构体类型的结构体变量构成的数组例:结构体数组 struct cj_list { char num[10]; char name[10]; int year; char sex; float math, English, computer, total; } stu[40]; 或 struct cj_list stu[40]; stu[5].name[0]='T';C 程序设计基础

stu[5]. math=90.5;10

结构、共用及枚举

结构体嵌套示例struct Date { int year; int month; int day; }; struct cj_list { char num[10]; char name[10]; int year; Date birthday; birthday; char sex; float math, English, computer, total; }; struct cj_list st; st.birthday.year = 1990; st.birthday. st.birthday.month = 5; st.birthday. st.birthday.day = 14; st.birthday …… 此处隐藏:2554字,全部文档内容请下载后查看。喜欢就下载吧 ……

第10章 结构、共用及枚举.doc 将本文的Word文档下载到电脑

    精彩图片

    热门精选

    大家正在看

    × 游客快捷下载通道(下载后可以自由复制和排版)

    限时特价:4.9 元/份 原价:20元

    支付方式:

    开通VIP包月会员 特价:19元/月

    注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
    微信:fanwen365 QQ:370150219