考点16 结构体《C语言程序设计》山东(春季高考)软件与应用技术类 知识点讲解

| 10页
| 1人阅读
| 0人下载

学科网 zxxk.com学科网 zxxk.com

山东省(软件与应用技术类)春季高考统一招生考试《C语言程序设计》

《C语言程序设计》复习讲义

模块 一  C 语言程序设计

考点 16   结构体

【考纲要求】

(1)了解结构体变量的定义及初始化。

(2)理解结构体变量的引用。

【知识网络】

page number 0

原创精品资源学科网独家享有版权,侵权必究

学科网 zxxk.com学科网 zxxk.com学科网(北京)股份有限公司


学科网 zxxk.com学科网 zxxk.com

 

【知识和技能要点】

一、结构体类型的定义

1. 为何需结构体

凡一事物,其属性往往异类:如学生者,有学号、有名姓、有性别、有分数,或为字符串,或为整型,或为实型。若各立为独立之变量,则散而无统,难见其关联;若强纳于一维数组,则类型不一,亦不可行。故C 语言立构造之型,名曰结构体,使异类之数据合为一体,其各元素谓数据项,亦曰域。

(1)缘由:事物之属性类型不一,散立则无统,数组则难容。

(2)所立:结构体为构造类型,合异类数据为一体。

(3)术语:其中各元素曰数据项,亦曰成员、域。

2. 定义形式

结构体类型之定义,其形为:书 struct,次书结构体名,而以花括弧括其各成员,每成员书“类型 成员名;”一行,末加一分号。如 struct student{ char no[10]; char name[8]; int score; };。此但定义一型,非定变量,故其时未分存储;必待以之定义变量,方有其内存。

(1)形式:struct 结构体名{ 类型 成员名; … };

(2)所成:此定义一类型,未分存储。

(3)与变量之别:必以类型定义变量,方得内存。

3. struct 与分号

定义之中,二处最易致误。一曰 struct 不可省,若径书结构体名而略其关键字,则编译器不识;二曰右花括弧之后之分号不可省,省之则报语法之误,而初学者多忽焉。此二者皆属细微,然编译之报错往往不指其所,故宜先察此处。

(1)struct 不可省:略之则编译器不识其型。

(2)末分号不可省:右花括弧后须加一分号。

(3)报错之惑:错误信息或不直指其处,宜先察此二者。

二、结构体变量的定义与初始化

1. 三种定义方法page number 1

原创精品资源学科网独家享有版权,侵权必究

学科网 zxxk.com学科网 zxxk.com学科网(北京)股份有限公司


学科网 zxxk.com学科网 zxxk.com

结构体变量之定义,其法有三。一为先定义类型,后定义变量,如 struct student stu1, stu2;,此时 struct 不可省。二为类型与变量同时定义,于右花括弧之后、分号之前列变量名。三为直接定义变量,不先立类型名,而径于括弧之后列变量。三者之中,首法最通用;后者宜于该型仅用一次之时。

(1)先型后量:struct student stu1, stu2; 其 struct 不可省。

(2)型量同定:于右花括弧之后列变量名。

(3)直接定义:不立类型名,仅用一次者宜之。

2. 初始化

结构体变量可于定义之时赋以初值,其法与数组略同:以花括弧依成员之序列举其值,如 struct date d={2020, 5, 8};。值之次序须与成员之次序相合,类型亦须相容。若所给之值不足,则余者补零。又全局之结构体变量未显式初始化者,其各成员皆为零或空。

(1)形式:以花括弧依成员之序列其值,如 {2020,5,8}。

(2)次序与类型:须与成员之次序相合,类型相容。

(3)不足补零:所给值少者,余者补零。

3. 内存之分配

结构体变量所占之内存,为各成员所需之总和:如 struct S { int a; int b; }; 则其变量占八字节。各成员各有其存储,彼此不相覆,故可同时并存。类型之定义只立其式,不占地;必待以之定义变量,方分配存储单元。成员愈多则所占愈大,改一成员之类型,其大小亦随之而变。

(1)大小为各成员之总和:如二整型成员,合为八字节。

(2)各占其位:成员各有存储,彼此不相覆,可同时并存。

(3)类型不占地:类型之定义只立其式,定义变量方分配存储。

三、结构体变量的引用

1. 成员引用

结构体变量之引用,以成员为单位,其形为“变量名.成员名”,中点之号曰成员运算符。如 stu.score 者,即取 stu 之 score 成员,其用与普通变量无异,可赋值、可运算、可输入输出。输入之时,若成员为数组,则径书其名而不加取地址符;若为基本类型,则须加 &。

(1)形式:变量名.成员名,中点为成员运算符。page number 2

原创精品资源学科网独家享有版权,侵权必究

学科网 zxxk.com学科网 zxxk.com学科网(北京)股份有限公司


由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。