定义结构体类型的同时定义变量,并对变量初始化
- 格式:docx
- 大小:13.11 KB
- 文档页数:1
C++中结构体的类型定义和初始化以及变量引⽤C++结构体类型的定义和初始化有时需要将不同类型的数据组合成⼀个有机的整体,以供⽤户⽅便地使⽤。
这些组合在⼀个整体中的数据是互相联系的。
例如,⼀个学⽣的学号、姓名、性别、年龄、成绩、家庭地址等项,都是这个学⽣的属性,见图可以看到学号(num)、姓名(name)、性别(sex)、年龄(age)、成绩(score )、地址(addr)是与姓名为“Li Fun”的学⽣有关的。
如果在程序中将num,name,sex,age,score,addr分别定义为互相独⽴的变量,就难以反映出它们之间的内在联系。
应当把它们组织成⼀个组合项,在⼀个组合项中包含若⼲个类型不同(当然也可以相同)的数据项。
C和C++允许⽤户⾃⼰指定这样⼀种数据类型,它称为结构体。
它相当于其他⾼级语⾔中的记录(record)。
例如,可以通过下⾯的声明来建⽴如图所⽰的数据类型。
struct Student//声明⼀个结构体类型Student{int num; //包括⼀个整型变量numchar name[20]; //包括⼀个字符数组name,可以容纳20个字符char sex; //包括⼀个字符变量sexint age; //包括⼀个整型变量agefloat score; //包括⼀个单精度型变量char addr[30]; //包括⼀个字符数组addr,可以容纳30个字符}; //最后有⼀个分号这样,程序设计者就声明了⼀个新的结构体类型Student(struct是声明结构体类型时所必须使⽤的关键字,不能省略),它向编译系统声明:这是⼀种结构体类型,它包括num, name, sex, age, score, addr等不同类型的数据项。
应当说明Student是⼀个类型名,它和系统提供的标准类型(如int、char、float、double ⼀样,都可以⽤来定义变量,只不过结构体类型需要事先由⽤户⾃⼰声明⽽已。
第10章结构体与共用体1.以下叙述中错误的是()。
A) 可以通过typedef增加新的类型B) 可以用typedef将已存在的类型用一个新的名字来代表C) 用typedef定义新的类型名后,原有类型名仍有效D) 用typedef可以为各种类型起别名,但不能为变量起别名参考答案:A【解析】关键字typedef的作用只是将C语言中的已有的数据类型作了置换,并不是增加新的类型,所以A)错误。
2.以下关于typedef的叙述错误的是A) 用typedef可以增加新类型B) typedef只是将已存在的类型用一个新的名字来代表C) 用typedef可以为各种类型说明一个新名,但不能用来为变量说明一个新名D) 用typedef为类型说明一个新名,通常可以增加程序的可读性参考答案:A【解析】typedef并不是增加了新类型,而是用一个新名字替代已存在的类型,不能为变量说明一个新名,使用typedef可以增强移植性。
所以A选项错误。
3.若有以下语句typedef struct S{ int g; char h; } T;以下叙述中正确的是A) 可用S定义结构体变量B) 可用T定义结构体变量C) S是struct 类型的变量D) T是struct S类型的变量参考答案:B【解析】本题考查typedef重新声明一种结构体类型,那么T为结构体类型,而不是结构体变量,所以B选项正确。
4.设有以下语句typedef struct TT{ char c; int a[4]; } CIN;则下面叙述中正确的是A) CIN是struct TT类型的变量B) TT是struct类型的变量C) 可以用TT定义结构体变量D) 可以用CIN定义结构体变量参考答案:D【解析】本题考查typedef重新声明一种结构体类型,其中CIN为结构体类型名,而不是结构体变量,所以D 选项正确。
5.以下叙述中错误的是A) 可以用typedef将已存在的类型用一个新的名字来代表B) 可以通过typedef增加新的类型C) 用typedef定义新的类型名后,原有类型名仍有效D) 用typedef可以为各种类型起别名,但不能为变量起别名参考答案:B【解析】本题考查typedef的用法,typedef并不是增加一种新的类型,而是对已存在的类型用一个新的名字来代表,所以B选项错误。
C程序设计判断题(下列各题,你认为正确的,请在题后“J”,错的打“X”)1.C语言是一种计算机高级语言。
J2.C语言是一种语算机低组语言。
X3.C语言允许直接访问物理地址,能进行位操作。
J4.C语言不允许直接访问物理地址,不能进行位操作。
X5.C语言是结构化程序设计语言。
J6.C语言是面向对象的程序设计语言。
X7.C程序要通过编译,连接才能得到可执行的目标程序。
J8.用C语言编写程序,可以编写出任何类型的程序。
J9.每一个C程序都必须有一个主函数main()°J10.每一个C程序允许有多个主函数。
X11.C语言允许有空函数。
J12.C语言不允许定义使用空函数。
X13.C程序书写格式,允许一行内可以写几个语句。
J14.C程序书写格式规定一行内只能写一条语句。
X15.C程序的语句无行号。
J16.C程序的每一条语句都给定一个行号。
X17.C语言的每个语句的最后必须有一个分号。
J18.C语言有的语句的最后可以没有分号。
X19.C语言本身没有输入输出语句。
J20.C语言提供了专用的输入输出语句。
X21.C语言可用来编写应用软件,也可用来编写系软件。
J22.C语可用业编写应用软件,但不能用来编写系统软件。
X23.Turbo C是在微机上广泛使用的编译程序。
J24.Turbo C是在大型计算机上使用的编译程序。
X25.C语言的数据结构是以数据类型形式出现的。
J26.C语言的数据结构是以常量和变量形式出现的。
X27.空类型是C语言的一种数据类型。
J28.空类型不是C语言的数据类型。
X29.C语言中数据有常量和变量之分。
J30.C语言中数据不分常量和变量。
X31.利用指针和结构体类型可以构成表、树等复杂的数据结构。
J32.利用批针和结构类型不能构成更复杂的数据结构。
X33.在C程序中对所用到的所有数据都必须指定其数据类型。
J34.在程序运行过程中,其值不能被改变的量称为常量。
J35.在程序运行过程中,其值可以改变的量称为变量。
struct函数的用法-回复什么是struct函数?在编程中,struct函数是一种用于定义和组织相关数据的自定义数据类型。
它允许程序员创建包含不同数据类型的变量,将它们组合在一起形成一个逻辑上相关的实体。
struct函数通过定义一组变量来描述以及操作这些变量的方式,使程序的结构更加清晰,易于维护和理解。
1. 结构体的定义struct函数的第一步是定义结构体。
定义一个结构体需要指定其名称以及组成结构体的成员变量。
例如,我们可以定义一个表示学生的结构体如下:struct Student {int id;char name[50];float gpa;};在这个例子中,我们定义了一个名为Student的结构体,它有三个成员变量:id是一个整数类型的变量,name是一个字符数组,gpa是一个浮点数类型的变量。
2. 结构体变量的声明和初始化一旦定义了结构体,我们可以声明结构体类型的变量,并对其进行初始化,如下所示:struct Student s1; 声明一个Student类型的变量s1s1.id = 1001; 初始化id成员变量strcpy(, "John"); 将字符串"John"复制给name成员变量s1.gpa = 3.8; 初始化gpa成员变量在这个例子中,我们声明了一个名为s1的Student类型的变量,并为其成员变量id、name和gpa赋予了特定的值。
也可以直接在声明结构体变量的同时进行初始化,如下所示:struct Student s2 = {1002, "Alice", 3.9}; 声明并初始化结构体变量s2在这个例子中,我们声明了一个名为s2的Student类型的变量,并在声明的同时将id、name和gpa三个成员变量初始化为给定的值。
3. 结构体作为函数参数和返回值结构体可以作为函数的参数和返回值,这样可以将复杂的数据结构传递给函数,或从函数返回一个组织好的数据。