c++结构体的定义和使用

在许多现实问题中,一组数据往往有很多的数据类型。比如,在一学生登记表中,有姓名,ID,手机号,它们有字符类型也有整型。 显然不能用一个数组来存放这一组数据。
在这里插入图片描述
当使用多个数组存放时
char ID[3][10]={"0101","0102","0103"}; char name[3][10]={"Tom","Jim","Join"}; char phone[3][20]= {"18742390018","19876523400","15023899450"};
发现信息比较松散且不直观,数据存取不方便(如用ID查找一个学生,因为字段太多,很难用一个函数把该学生的信息输出
int find(char ID,char * name,char* phone) {... }
只有两个信息name phone 时可以这样直接输出,但当其包含上百个信息时,需要上百的输出参数。)。又因为数组中各元素的类型和长度都必须一致,以便于编译系统处理。
为了解决这个问题,C++中给出了另一种构造数据类型——“结构(structure)”或叫“结构体”。 它相当于其它高级语言中的记录。“结构”是一种构造类型,它是由若干“成员”组成的。每一个成员可以是一个基本数据类型或者又是一个构造类型。
结构类型是自定义数据类型,以关键字struct标记,由结构类型名,各成员的名称和类型定义。
结构既是一种“构造”而成的数据类型,那么在说明和使用之前必须先定义它,也就是构造它。如同在说明和调用函数之前要先定义函数一样。
定义一个结构的一般形式为:
struct 结构名
{类型 成员1;

类型 成员n;};
struct contact { char ID[10]; char name[10]; char phone[20]; };
这里定义的contact新类型与int,double等类型地位相同。
如,定义一个变量 contact a;定义一个数组 contact b[4];
使用时初始化:用大括号将各个成员初始值列出。
注意
1.使用大括号,末尾用分号结束。
2.各初始值的类型要与各字段的类型匹配。
3.各初始值要用逗号分开。

contact a=
{
     "0101",
    "Tom",
    "18742390018"
    };

可以初始化部分变量contact a={"0101","Tom"}; //只初始化前2个成员,也可以直接清零 contact a={0};
在内存视图中,各个成员紧密排列,相当于被组合在一起。

使用点号加上成员的名称访问其成员(结构变量的成员)。
在这里插入图片描述
结构体的作用

1、明确数据关系

2、简化对数据块的操作

3、简化参数列表

4、减少维护

需要表达一些复杂的信息时,使用单纯的数据类型很不方便,所以使用结构体.

发布了2 篇原创文章 · 获赞 2 · 访问量 69

猜你喜欢

转载自blog.csdn.net/qq_45831840/article/details/104501693