谭浩强C语言配套课件第八章.ppt_第1页
谭浩强C语言配套课件第八章.ppt_第2页
谭浩强C语言配套课件第八章.ppt_第3页
谭浩强C语言配套课件第八章.ppt_第4页
谭浩强C语言配套课件第八章.ppt_第5页
已阅读5页,还剩57页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C语言程序设计 谭浩强 结构体和共用体 第十一章 第十一章结构体和共用体 11 1结构体的说明和定义11 2结构体成员的引用与结构体变量的初始化11 3结构体数组11 4结构体指针11 5结构体在函数间的传递11 6结构体型和结构体指针型函数11 7共用体简介11 8枚举类型11 9用typedef定义类型11 10习题 11 1结构体的说明和定义 在程序的设计中 会遇见一些关系密切 具有内在联系而且数据类型不同的数据 例如 一个班 一个年级或全校学生的学籍卡包括 他们的学号 姓名 性别 年龄 学习成绩 地址 等 这些数据有的是数字 有的是字符 其数据类型不同 对于这样一类数据可以用结构体来处理 11 1 1结构体的概念 结构体是不同数据类型的数据的集合 结构体是构造类型的数据 一个结构体由若干成员组成 它是组成结构体的要素 每个成员的数据类型可以不同 也可以相同 每个成员有自己的名字 对结构体数据的操作是通过对结构体成员的引用实现的 结构体的应用为处理复杂的数据结构体提供了有利的手段 特别是对处理那些数据结构比较复杂的程序提供了方便 每一个结构体有一个名字 所有成员都组织在该名字之下 结构体名 结构体成员名 11 1 2结构体的说明 由于结构体是由不同数据类型的数据组成的集合体 它包含若干成员 因此 在使用结构体进行数据处理时 首先应对结构体的组成进行描述 这种描述称为结构体说明 结构体说明实质上是构造一个结构体 说明的是结构体是由哪些成员组成以及成员的数据类型 结构体说明的格式 struct 是保留字 结构体类型标识符 结构体名 称结构体类型名 由标识符组成 大括号中的结构体成员表 称为结构体 结构体成员表包含若干成员 struct结构体名 结构体成员表 成员的表达形式 数据类型标识符结构体成员名 成员的数据类型 例 用结构建立学生的学籍卡 数据体 structstudent longnum charname 20 charsex intage floatscore charaddr 30 student1 student2 student1student2 student30 结构体变量名 结构体成员名 结构体名 结构体类型标识符 有关结构体说明应注意以下几点 结构体说明描述了结构体的组织形式 在程序编译时并不为它分配存储空间 结构体成员可以是简单变量 数组 指针 结构体或联合体等 所以 结构体可以嵌套使用 即一个结构体变量也可以成为另一个结构体的成员 结构体说明可以在函数内部 也可以在函数外部 若程序规模较大 可把其结构体说明部分作为文件存放起来 该文件是以 h为后缀的 头文件 这样可借助于 include 预编辑语句把它复制到任何源文件中 用以定义同类型的其它结构体变量 结构体成员名可以与程序中其它变量同名 系统会自动识别它们 两者不会混淆 student1 structdate intmonth intday intyear 定义一个structdate结构体 它代表日期包括三个成员 month 月 day 日 year 年 结构体成员可以是另一结构体变量 structstudent longnum charname 20 charsex intage floatscore charaddr 30 structdatebirthday 在定义structstudent结构体时 成员birthday被定义structdate类型 即结构体成员为另一结构体变量 已定义的 结构 类型structdate与其他类型 int char 一样可以用来定义结构体成员的类型 例 成员name addr是数组类型 11 1 3结构体变量的定义 结构体变量同其它变量一样也必须先说明 定义 然后才能引用 结构体变量定义要按照结构体说明中的结构体类型 为被定义的结构体变量分配内存单元 而结构体说明不分配内存 对结构体中数据 结构体成员 的操作是通过结构体变量的引用来实现的 用结构体变量可以对结构体成员进行赋值 存取或运算 1 结构体变量的作用 2 结构体变量定义的意义 例如 structstudent intnum charname 20 charsex intage floatscore charaddr 30 student1 student2 student3 1 在结构体说明的同时定义结构体变量 该例结构体名为student 用它定义了三个结构体变量student1 student2 student3 三个变量具有相同的组成结构体 即相同的类型 这种定义方法的特点是 定义一次结构体变量之后 在该定义之后的任何位置还可用该结构体类型来定义其它结构体变量 3 结构体变量定义格式 结构体变量定义的三种形式 struct结构体名 结构体成员表 结构体变量名表 其定义格式为 例如 struct intnum charname 20 charsex intage floatscore charaddr 30 student1 student2 student3 不出现结构体名 这里定义了三个结构体变量与 1 相同 这种定义方法的特点是 struct 结构体成员表 结构体变量名表 2 直接定义结构体变量 其定义形式为 不出现结构体名 这种定义方法的特点是 不能在别处用来另行定义别的结构体变量 要想定义就必须将struct 这部分重写 例如 structstudent intnum charname 20 charsex intage floatscore charaddr 30 structstudentstudent1 student2 student3 这种定义方法的特点是 可把其结构体说明部分作为文件存放起来 这样可借助于 include 预编辑语句把它复制到任何源文件中 用以定义同类型的其它结构体变量 struct结构体名 结构体成员表 存贮类型 struct结构体名结构体变量名表 3 把定义和说明分开 其定义格式为 注意结构体声明和结构体变量定义的区别 每个结构体变量表示的是一组 域 成员 数据 而不是一个数据 每个结构体中所有结构体变量的结构 类型 是一样的 在一个结构体中可以定义多少个结构体成员 结构体变量的定义一定要在结构体说明之后或与结构体说明同时进行 结构体变量一般不用register寄存器型的存储方式 结构体变量中的成员可以单独使用 其作用和地位与一般变量相同 结构体变量占用实际内存的大小可用sizeof 运算来实现 即 sizeof 结构体名 结构体变量的定义应注意的几点 11 2结构体成员的引用与结构体变量的初始化 结构体成员引用有三种方式 11 2 1结构体成员的引用 2 用指针的方式 1 用结构体成员运算符方式 定义一个指针结 构体指针 使它指向该结构体变量 这时就可用指针和成员名来引用结构体成员了 即 结构体变量名 成员名 3 用 指向运算符引用结构体成员 定义一个指针 结构体指针 使它指向该结构体变量 这时就可用指针和成员名来引用结构体成员了 其格式为 指针名 结构体成员名 例 structstudent longnum charname 20 charsex intage floatscore charaddr 30 stu1 stu2 结构体成员的引用 用结构成员运算符 引用结构体成员structstudentstu1 structstudentstu2 stu1 num 2010001 stu1 sex M stu1 age 18 stu1 score 87 Strcpy stu1 addr Beijing 用结构成员运算符 引用结构体成员格式 结构体成员运算符 结构体成员运算符就表示对结构体成员的引用 结构体变量名 结构体成员 2 不能将一个结构体变量作为一个整体加以引用 3 对结构体成员的操作与其它变量一样 可进行各种运算 结构体成员引用的几点说明 例 stu1 num作为一个整体来看待 并对其操作 stu1 num 优先于 其等效为 stu1 num 其含义为访问stu1 num 所指地址中的内容 的目标变量 赋值运算 stu1 score stu2 score 算术运算 sum stu1 score stu2 score 2 自加减运算 stu1 age stu1 age 关系运算 stu1 age stu2 age 例 printf d s c d f s stu1 1 结构体成员运算符 的优先级最高 结合性为左结合 从左至右 用结构体成员运算符 11 2 2结构体变量的初始化 结构体变量初始化的格式 对结构体变量初始化应注意几点 1 只能对存储类型为extern外部型和static静态型结构体变量初始化 不能对存储类型为auto自动型的结构体变量初始化 2 初始化数据与数据之间用逗号隔开 3 初始化数据的个数要与被赋值的结构体成员的个数相等 4 初始化数据的类型要与相应的结构体成员的数据类型一致 5 不能直接在结构体成员表中对成员赋初值 结构体变量的初始化 就是在定义结构体变量的同时 对其成员赋初值 规定 只准许对外部和静态结构体变量进行初始化 不能对自动类型的结构体变量初始化 struct结构体名结构体变量名 初始数据 例 structstudent longnum charname 20 charsex intage floatscore charaddr 30 structstudentstu1 2010001 Lifeng M 18 87 0 Beijing structstudent longnum 2010001 charname 20 Lifeng charsex M intage 18 floatscore 87 0 charaddr 30 Beijing stu1 stu2 不能直接在结构体成员表中对成员赋初值 例11 1用scanf函数将结构体变量数据输入 用printf函数将其输出 main structstudent longnum charname 20 charsex floatscore charaddr 30 structstudentstu1 scanf c 运行程序 M2010001Lifeng87Beijingnum 2010001name Lifengsex Mscore 87addr Beijing 例 main structdate intday intmonth intyear charmon name 10 structdatea 28 7 1997 July printf day d n a day printf month d n a month printf year d n a year printf mon name s n a mon name 运行程序 day 28month 7year 1997mon name July 11 3结构体数组 stu1stu2 stu30 structstudent intnum charname 20 charsex intage floatscore charaddr 30 stu1 stu2 stu29 例如 一个班级学生的学籍卡的数据结构如下 要使用该结构体中每个学生的数据 就要定义30个结构体变量 名 即 stu1 stu2 stu30 这种方法很不方便 由于该例结构体变量名都相同 就是最后的序号不同 这种情况可使用结构体数组 结构体数组是其数组元素都是具有相同结构体类型的结构体变量 即结构体数组是结构体变量集合的一种数组 结构体数组元素中可存放哪些具有内在联系 相互关联的结构体变量 结构体数组适合处理一组具有相同结构体类型的数据 11 3 1结构体数组的概念 stu 30 11 3 2结构体数组的定义 例如 staticstructstudentstu 30 例中定义了30个结构体变量 下标0 29 下标从0开始 结构体变量是stu 0 stu 1 stu 2 stu 29 结构体数组也必须先定义或说明 后引用 结构体数组定义的格式 存储类型 struct结构体名结构体数组名 元素个数 结构体名 元素个数 结构体数组定义的说明 在结构体数组定义中 结构体即 struct结构体名 是已被说明的结构体类型 先说明后定义 存储类型是结构体数组 即结构体变量 的存储类型 结构体数组与前面介绍的数值型数组不同之处在于每个数组元素都是一个结构体类型的数据 它们分别包含各个成员项 一组数据 11 3 3结构体数组的初始化 结构体数组的初始化 就是在定义结构体数组的同时 对其成员赋初值 结构体数组的初始化格式为 存储类型 struct结构体名结构体数组名 元素个数 初始化数据 说明 结构体即 struct结构体名 是已被说明的结构体类型 初始化的数据的个数与结构体数组元素的个数相同 数据类型相匹配 为了提高可读性 最好每一个数组元素 结构体变量 的初始数据都用花括号括起来 初始化结构体成员数据之间 数组元素之间用逗号隔开 存储类型 struct结构体名 结构体成员表 结构体数组名 元素个数 初始化数据 或 例 structstudent longnum charname 20 charsex intage floatscore charaddr 30 stu 30 2010001 Lifeng M 18 87 Beijing 2010002 Wangbing M 18 79 Beijing 2010030 Chenming M 17 80 Beijing 例中给结构体变量stu 0 stu 1 Stu 29 的各个成员赋初值 structstudent intnum charname 20 charsex intage floatscore charaddr 30 structstudentstu 30 2010001 Lifeng M 18 87 Beijing 2010002 Wangbing M 18 79 Beijing 2010030 Chenming M 17 80 Beijing 结构体数组的初始化也可用以下的形式 例11 2下述程序的输出结果是 main structcopml intx inty coum 2 1 3 2 7 printf d coum 0 y coum 0 x coum 1 x A 0B 1C 3D 6 答案 D 3 1 2 11 4结构体指针 结构体指针是指向结构体变量的指针 结构体指针是一个指针变量 用来指向结构体变量 其目标变量是一个结构体变量 其目标是一个结构体变量的 一组 数据 其内容是结构体变量的 首 地址 结构体指针定义的格式 11 4 1结构体指针的概念 11 4 2结构体指针变量的定义和引用 存储类型 struct结构体名 结构体指针名 例如 staticstructstudent pstu structstudent是预先说明的结构体 pstu结构体指针的存储类型是static 1 结构体名必须是已经说明的结构体 structstudent intnum charname 20 charsex intage floatscore charaddr 30 stu1 stu2 stu30 staticstructstudent pstu pstu 2 结构体指针变量在使用前必须要进行赋值操作 以把某个结构体变量的地址赋给结构体指针 使它指向该结构体变量 structstudent intnum charname 20 charsex intage floatscore charaddr 30 stu 30 staticstructstudent pstu pstu 结构体数组 结构体指针变量的定义和引用应注意的问题 3 结构体指针所指向的结构体变量必须与定义时所规定的结构体类型一致 structstudent1 intnum charname 20 charsex intage floatscore charaddr 30 stu1 30 staticstructstudent1 pstu1 pstu1 stu2 structstudent2 intnum charname 20 charsex intage charaddr 30 stu2 30 staticstructstudent2 pstu2 pstu2 stu1 上例中的两个结构体的结构类型 结构体成员 不同 结构体指针 pstu1和 pstu2不能指向对方的结构体变量 4 结构体指针的运算原则同一般指针一样 例如 结构体指针的加1或减1运算 加 减整型常量 其含义是将指针指向下一个或上一个结构体变量 11 4 3通过结构体指针引用结构体成员 例如 structstudent intnum charname 20 charsex intage floatscore charaddr 30 stu 30 structstudent pstu pstu stu 以下引用是正确的stu 0 numstu 0 name pstu 2 num pstu name Pstu 2 sexpstu age 在定义结构体指针以后 就可以用结构体指针引用结构体成员 引用的方法如下 结构体指针名 成员名 结构体指针名 成员名 或 例如 structdata intx inty a structdata p p 用结构体变量名 结构体成员名引用a xa y 用 结构体指针名 结构体成员名引用 p x p y 用结构体指针名 结构体成员名引用p xp y 结构体变量名 结构体成员名 结构体成员引用的三种形式 结构体指针名 结构体成员名 结构体指针名 结构体成员名 例如 structdata intx int y a 10 structdata p p a 引用结构体成员x 等效为 p y p y是一个指针 p y是取该指针的目标 意义同上 等效为 p x 结构体成员x加1 引用结构体成员x之前结构体指针p加1 即a 1 的成员x先引用结构体成员x 然后结构体指针p加1 引用x内容后 x加1 先引用结构体成员y所指向的内容后 然后其值加1 在应用结构体成员的引用及计算时应注意它们使用的区别 C语言计算中运算符 的优先级最高 p x p y p x p x p x p xp x p y 例11 3指向结构体变量指针的应用 include includemain structstudent intstuno charname 20 floatscore structstudentstu p p 定义结构体 定义结构体成员 定义结构体变量和结构体指针变量 给结构体成员赋值 给结构体指针赋值 输出结构体数据 运行程序 1StudentNo 9701Name LipingScore 95 5000002StudentNo 9701Name LipingScore 95 500000 例11 4指向结构体数组指针的应用 structstudent intstuno charname 20 intscore structstudentst 3 20001 Liping 95 20002 Zhanghua 93 20003 Sunhong 98 main structstudent p printf StudentNo NameSocre n for p st pstuno p name p score 定义 初始化结构体数组 定义结构体指针 输出结构体中的数据 运行程序 StudentNo NameScore20001Liping9520002Zhanghua9320003Sunhong98 11 5结构体在函数间的传递 函数间不仅可以传递简单变量 数组 指针等类型的变量 而且还可以传递结构体类型的变量 函数之间结构体变量的传递同一般变量一样 可以用数据复制方式传递 也可以用地址复制方式传递 11 5 1结构体变量的传递 用复制方式传递结构体变量时 可以把结构体变量作为普通变量来处理 例如两个类型相同的结构体变量之间可以进行赋值 可以把一个结构体变量作为一个参数以复制方式传递给被调用函数 函数也可以返回一个结构体变量类型的值等 1 用数据复制方式传递结构体变量 传值方式 structemp charname 20 floatsalary floatcomm floatsum main structempteacher printf nEntername scanf s teacher name teacher salary 315 10 m 350 60 teacher sum teacher salary m printf n s 2f teacher name teacher salary printf 2f 2f m teacher sum printf nCall FunctionDisplay display teacher printf nAfterCall Function printf n s 2f teacher name teacher salary printf 2f 2f m teacher sum 例11 5用数据复制方式传递结构体变量 定义结构体变量teacher 调用函数display调用时把结构体变量teacher作为实参传递给被调用函数的形参p 实参 形参具有相同的结构体类型 display p structempp printf n s 2f 2f 2f p name p salary m p sum p salay 519 50 m 410 50 p sum p salay m printf n s 2f 2f 2f p name p salary m p sum 程序运行 EnterName zhangpingzhangping315 10350 60665 70Call FunctingDisplayzhangping315 10315 60665 70zhangping519 50410 50930 00AfterCall FunctingDisplayzhangping315 10315 60665 70 定义函数display 其形参p为结构体变量 例11 6用数据复制方式传递结构体变量的说明 p teacher 1 调用函数display 调用时把结构体变量teacher作为实参传递给被调用函数的形参p 实参 形参具有相同的结构体类型 P接收调用时传递给被调用函数的数据 2 结构体变量p和teacher在运行时占用互不相同的存储空间 在传递参数时 把teacher的各个成员的值复制给p的各个成员 3 形参和实参代表两个不同的结构体变量 其结构体类型相同 但运行时分配不同的存储空间 但被调用函数不能修改实参所对应的结构体变量 采用地址复制方式传递结构体变量时 实参是结构体变量的地址 形参是与实参有相同结构体类型的指针 该指针用来接收传递的结构体变量首地址 被调用函数通过该指针来处理实参所对应的结构体变量的各成员 用地址复制方式传递结构体变量是常用的传递方式 所以 利用地址复制方式传递结构体变量时 被调用函数可以修改结构体变量的成员 2 用地址复制方式传递结构体变量 传址方式 10 include20 include30structdate 定义结构体 40 intday 50intmonth 60intyear 70charname 20 80 90main 100 structdateymd 110structdate pd 120pd 给结构体变量ymd赋值 例11 7程序处理采用地址复制方式 日 月 年 150printf d d d s n pd year pd month pd day pd name 160day 210 程序运行 Enteryear month day 2001 9 1 zhang2001 9 1 zhang2002 9 1 zhang 说明 在调用day 函数时 其实参是结构体变量的首地址 ymd day 函数的定义中 形参pd是与实参具有相同结构体类型的指针变量 该指针变量接收传递过来的实参地址 即结构体变量ymd的首地址 函数通过pd访问结构体变量ymd 并可修改其成员值 例如 pd year 2002将ymd变量的year值改为2002 11 5 2结构体数组在函数间的传递 例9 8的说明 主函数main 定义的结构体数组list 用于存放学生的成绩册 函数调用input list i 中的实参是结构体数组list i 的首地址 input 函数用于建立该成绩册 用于输入一个学生的有关信息 其形参sp是一个structstudent结构体类型的指针 用于接收结构体数组 元素 的首地址 display 函数用于显示学生的成绩册 函数调用display list i 中的实参list是结构体数组名 i是输入第几个学生的数 display 函数调用时 其形参pm是structstudent结构体类型的指针 用于接收结构体数组 元素 的首地址 函数不仅可以传递一般结构体变量 而且还可以传递结构体数组 在传递结构体数组时 实参是数组名 即结构体数组的地址 形参是结构体指针 它接收传递过来的数组首地址 使它指向实参所表示的结构体数组 例11 8学生成绩册的建立和显示 采用结构体数组在函数间的传递 10 include20 defineMAX230structstudent40 charid 6 50charname 20 60intscore 70 80main 90 structstudentlist MAX 100inti 110for i 0 i MAX i 120if input 160 170input sp 180structstudent sp 190 chars 5 200printf nEnterID 210gets sp id 220printf EnterName 230gets sp name 240if sp name 0 0 250return 0 260printf Enterscore 270gets s 280sp score atoi s 290return 1 300 310display pm m 320structstudent pm 330intm 340 inti 350printf n 360for i 0 iid pm name pm score 380 input 函数的作用是给结构体变量中各成员赋值 display 函数的作用是显示结构体变量中各成员的值 若不给结构体成员name赋值仅按 则函数input 返回值为0 11 6结构体型和结构体指针型函数 结构体型函数说明的一般形式 11 6 1结构体型函数 如果函数返回值是某一结构体变量时 则称该函数是结构体型函数 该函数的数据类型就是这个结构体变量所具有的结构体类型 结构体型函数定义的一般形式 struct结构体名函数名 形参表 形参说明 内部数据说明语句 执行语句 return 结构体变量 struct结构体名函数名 includestructdatatype charstr 20 intx floaty main structdatatyperev structdatatypefunc printf CallFunction n rev func printf rev str srev x drev y 2f n rev str rev x rev y structdatatypefunc structdatatypetest strcpy test str teststring test x 45 test y 147 45 printf test str stest x dtest y 2f n test str test x test y printf Afterreturn n return test 例11 9返回值为结构体变量的函数 定义结构体型函数 结构体函数的说明 程序运行 CallFunctiontest str teststringtest x 45test y 147 45Afterreturnrev str teststringrev x 45rev y 147 45 调用函数 说明 函数func 被定义为结构体型函数 其类型为structdatatype 在main 函数中 rev也是structdatatype类型的结构体变量 它与func 的类型相同 用rev接收函数func 的返回值 从运行结果看 结构体变量中各成员的值与test结构体变量相同 因此 rev func 可以看作结构体变量之间的赋值操作 11 6 2结构体指针型函数 在调用结构体指针型函数时 用于接收结构体指针型函数返回值的变量应该是指向与该函数具有相同结构体类型的结构体指针变量 当函数的返回值是结构体变量的首地址时 称该函数为结构体指针型函数 该函数的数据类型为结构体指针型 结构体指针型函数定义形式 struct结构体名 函数名 形参表 形参说明 内部数据说明语句 执行语句 return 结构体变量地址 结构体指针型函数说明的一般形式 struct结构体名 函数名 例11 10实现电话号码查寻 假设有一个电话号码表 给一个电话号码找出该号码对应的信息 函数功能 建立电话号码表函数 当输入的电话号码为0时 结束电话号码的输入 if语句中判断条件为真 break强制程序退出循环 defineNULL0structsample intnum charname 20 charaddr 80 list 50 tell list inti for i 0 i 50 i printf nEntertel number scanf d structsample found n intn inti for i 0 inum NULL printf nNumber d ps num printf nName s ps name printf nAddress s ps addr elseprintf nNotfound 定义结构体指针型函数 函数功能 根据给出的电话号码查着对应的信息 输入查找的电话号码为0 则退出程序 if语句中判断条件为真 break强制程序结束 函数返回值是结构体变量list i 的首地址 结构体指针的说明 调用结构体指针型函数 注意 结构体指针型函数返回结构体首地址 但该结构体一定不能是该函数中定义的自动型结构体变量 在程序运行过程中 有时需要使用几种不同类型的变量存放到同一个段内存单元中 例如 可把一个整型变量 一个字符型变量 一个实型变量放在同一个地址开始的内存单元中 这三个变量在内存中占的字节数不同 但都从同一个地址开始存放 也就是使用了覆盖技术 几个变量互相覆盖 这种使几个不同的变量共占同一段内存的结构 称为 共用体 它是一种类似于结构体的构造型数据类型 它准许不同类型和不同长度的数据共享同一块存储空间 11 7共用体简介 共用体的说明形式为 union共用体名 数据类型1成员1名 数据类型2成员2名 数据类型n成员n名 注意 1 每个成员都从第一个字节开始连续存放 2 共用体中的成员不能同时使用 3 占用字节数等于占用内存最多的成员占用的单元数 例如 unioncif charc1 100 inti2 100 floatf3 100 Cif占用单元数 400 11 7 1共用体的说明 同结构体相同 也有三种方法 1 在共用体说明的同时定义共用体变量其定义格式为 union共用体名 共用体成员表 共用体变量名表 例unionsu inta 10 floaty longu unionsuu1 u2 10 11 7 2共用体变量或数组的定义 2 直接定义共用体变量其定义形式为 union 共用体成员表 共用体变量名表 这种定义形式不出现共用体名例 union inta 10 floaty longu u1 u2 10 3 把定义和说明分开其定义格式为 union共用体名 共用体成员表 存贮类型 union共用体名共用体变量名表 union inta 10 floaty longu unionsuu1 u2 10 同结构体相同 只能引用成员 有三种方式 1 用指针的方式定义一个指针 共用体指针 使它指向该共用体变量 这时就可用指针和成员名来引用共用体成员了 其格式为 指针名 共用体成员名 2 用共用体成员运算符方式 用共用体成员运算符 引用共用体成员格式 共用体变量名 共用体成员名 3 用 指向运算符引用共用体成员定义一个指针 共用体指针 使它指向该共用体变量 这时就可用指针和成员名来引用共用体成员了 其格式为 指针名 共

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论