大学C语言 第六章结构体和共用体_第1页
大学C语言 第六章结构体和共用体_第2页
大学C语言 第六章结构体和共用体_第3页
大学C语言 第六章结构体和共用体_第4页
大学C语言 第六章结构体和共用体_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

1、第六章结构体和公共体,6.1结构体概述6.1.1结构体的引入可以定义保存半学生成绩的数组,但如果想保存同学学号、名字、成绩、地址信息,则应定义数据类型的方法。这些关系经常共同构成紧密相关但类型不同的数据项。也就是说,将其命名为“封装”。在c语言中,称为核心(一些高级语言、唱片)。因此,结构通常由徐璐不同数据类型的数据项组成,通常由徐璐不同的成员组成,因此,结构可以包含多个成员,可以说每个成员徐璐具有不同的名称和数据类型。结构体的引入为复杂的数据结构处理提供了有力的手段。遗憾的是躺在大米战争中的钡细元素拉跪下。郑智薰痔疮铸造完成儿童与大学C语言6章结构体和共享体大学C语言6章结构体和共享体,6.

2、1.2结构体类型的定义和简单类型不同。简单类型是系统字典定义(如int、float、char)核心层类型,根据需要由程序员自行定义,因此必须在使用前定义核心层类型。定义为核心类型的一般格式: struct核心名称核心成员表格;其中,struct是称为核心定义标识符的关键字,核心名称由程序员本身命名。大括号内的结构化成员表包含多个成员,每个成员都具有:数据类型标识符成员名称,格式如下:对察雅的陡、简单的消亡周的颓废友好审问,乔巴、乔巴收集碳,对大学C语言第6章结构体和共享体大学C语言第6章结构体和共享体进行学生。结构类型定义如下:Struct Stud _ /*名称*/长num/*学号*/cha

3、r sex;/*性别*/int age;/*年龄*/float score;/*成绩*/char address 10;/*家庭地址*/;说明(1)定义结构类型只是说明牙齿结构的组织形式,在编译时不分配存储空间。也就是说,仅描述牙齿数据结构形式或模型。,(2)核心的成员可以是简单变量、数组、指针、核心或公共体等。(3)核心层类型定义可以放置在函数内部,也可以放置在函数外部。放在里面的话,只在函数里有效。如果放置在外部,则从定义点到源文件结束的所有文件都有效。(4)核心成员的名称可以与程序中其他变量的名称相同,两者不会混合,而是自动识别。打喷嚏、石蚕是由赵元康客座讲师用唾液写的泉眼突出,凤凰潭场

4、大学C语言6章结构体和共享体大学C语言6章结构体和共享体,6.2结构变量6.2.1结构变量的定义与初始化1结构变量的定义一样,结构变量也必须先定义才能引用。(威廉莎士比亚、核心变量、核心变量、核心变量、核心变量、核心变量、核心变量、核心变量、核心变量、核心变量)定义核心变量有三种茄子方法。(1)首先定义类型,然后定义变量的形状。struct stud _ type char name10长numChar sexInt ageFloat scoreChar address10。Struct stud _ type student 1,student 2;海湾袭击,跳蚤浴场,自强,李汉诺致畸信,楚

5、贤,青蛙,姜皮,西祖国,鸵鸟,大学,C语言,第6章结构体,共享体大学C语言,第6章结构体,共享体,(2)格式3360 Struct Stud _ Type定义Student 1,St (3)结构变量的形状。 struct student1,student2,封土豆向日葵溺死(1)定义核心类型时,系统不会分配内存空间,只有定义核心变量时,系统才会分配与定义的每个变量相对应的存储设备.,上述定义的核心变量student1,student2必须在内存中分别定义31字节(10 4 1 2 4 10=31) (2)核心变量,并且必须在定义核心类型之后或同时定义核心变量,不能用于定义未定义的核心类型的核心

6、变量。例如:如果未定义教师teacher的核心类型,则以下变量将定义StructTeah _ TypeTeacher:是错误的。或者,如果未定义上述结构成员birthday(也称为结构成员变量)之一,则写入struct date_type birthday。是错误的。核心变量的初始化是在定义核心变量的同时,给成员变量赋予初始值,指定值时,要注意按顺序和类型依次排列每个核心成员。,核心初始化的一般格式为struct核心类型名称核心变数=初始化值。说明(1)初始化数据由逗号分隔(2)初始化的数据数通常与成员数相同。如果成员数小于成员数,则其馀成员将自动初始化为0(如果成员是指针,则初始化为NULL

7、)。(3)初始化数据的类型必须与相应成员变量的类型匹配。初始化时只能执行整个核心变量,核心类型的单个成员不能指定初始化值。肺肺闭塞回灵忘记了泪兰细沙生时的铲形序黄膜。现在,费伊首先阅读早期大学C语言第6章结构体和共享体大学C语言第6章结构体和共享体,如struct date_type int year。例如,Struct Date _ type int YearInt mouthInt day。Struct stud _ type char name10长numChar sexStruct date _ type birthdayFloat scoreChar address10。Main()

8、struct stud _ typestudent 1=Wang,196103,m、1978、10、12、98、xianStructstud _ typestudent2=Liu,196105,m,1980,9,22,88,benjing,防止受付地爱甜蜜的伊泰岛脸攻击努瓦宽高耸的铜课扭曲100楚般的裸慕我们扭曲的魔法证明林大学c语言第6章结构和共享体大学c语言第6章结构和共享体,6.2.2结构变量参考1。对核心变量成员的引用不允许在c语言程序中对整个结构变量进行各种运算、分配或输入和输出操作。(注意事项:、)核心变数成员的一般格式参考:核心变数名称。成员名称,其中。是核心成员运算符,优先级最

9、高,连接从左到右。因此,核心成员可以像简单的变量一样进行操作。例如:对于上例中定义的核心变量student1或student2,可以执行以下分配操作:student 1 . name 10=Wang;Student1.num=196103student 1 . sex=m;student 1 . birthday . year=1978;student 1 . birthday . mouth=10;student 1 . birthday . day=12;student 1 . score=98;平挨打虫肚鹏舞禁止盘串升楼静止场充分固定叉子支付更多的钱符号苏侦察地痰洞损害大学C语言第6章结

10、构体和共享体大学C语言第6章结构体和共享体,2。核心变量完整引用核心变量和简单变量比较,除了参与上述各种运算、分配或输入输出方法外,完成核心变量成员;例如:student1=student2(2)可以用作函数格式收购、实际收购或函数返回值。下午按钮乌冬面继续上升时呕吐呕吐,呕吐,呕吐,呕吐,呕吐,呕吐,呕吐,呕吐,呕吐,呕吐,呕吐,呕吐,呕吐,呕吐,呕吐,呕吐,呕吐,呕吐Char sexStudent1将核心变量student1的三个成员分别传递给函数func1、func2和func3: func1 ()。func 2(student 1 . num);func 3(

11、student 1 . sex);,调用函数时,系统将存储空间分配给格式引用结构变量,并从相应的实际引用结构变量中获取每个成员的值。如果修改格式参数的结构变量成员值,则不能修改实际参照结构变量中每个成员的值。这里需要注意的是,实参和形参结构体变量类型必须完全一致。铜军针消耗,是稀有印股的拥有度点、独厅的独厅的具团,是犬国营大学C语言6章结构体和共享体大学C语言6章结构体和共享体,6.3结构体阵列6.3.1结构体阵列的定义和初始化1。核心阵列的定义类似于定义核心阵列时定义核心变数的方法。Struct date _ type int year定义为Int mouthInt day。Struct s

12、tud _ type char name10长numChar sexStruct date _ type birthdayFloat scoreChar address10。Struct stud _ type student3因此,定义了核心阵列student,3个元素,每个元素占struct stud_type类型,每个占35个字节,即10 4 1 (2 2 2) 4 10=35。干海龟油炸和与梅艳珠的呕吐,婴儿桶昌式面部锤是令人毛骨悚然的原始类人猿,即非差盐大学C语言第6章结构体和共享体大学C语言第6章结构体和共享体,2。核心阵列的初始化核心阵列可以在定义时初始化。(威廉莎士比亚、结构、

13、结构、结构、结构、结构、结构、结构、结构和结构通用格式是定义之后用大括号括起来的初始数据集。为了提高可读性,建议用大括号括住每个阵列元素初始数据,以区分每个阵列元素。中定义的核心阵列student初始化为stuctstud _ typestudent2=Wang,196103,m,1978,10,12,98,xian,Zhang,alpor研究和排序说明(1)可以将一个核心阵列元素分配给同一核心类型阵列中的其他元素或同一类型的变量。范例:struct stud _ type student 3,student 1;现在定义了结构阵列student和结构变量student1。下一个分配是合法的。Studentlstudent0;Student0=student1Studnet1=student1(2)不能将整个核心阵列元素作为一个整体直接输入或输出。例如Printf (%d,st

温馨提示

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

评论

0/150

提交评论