2.8 结构体struct的使用

本文详细介绍了C++和C语言中结构体struct的使用,包括结构体的定义、访问结构体元素的方法、初始化结构体的三种方式,并通过实例展示了结构体在存储复合数据时的便利性。同时,文中提到了构造函数在结构体初始化中的应用,以及如何自定义构造函数来完成特定的初始化操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

2.8 结构体struct的使用

结构体可以将若干个不同类型的变量和数组封装在一起 ,方便存储一些复合数据。

2.8.1结构体的定义

定义一个结构体的基本格式如下:

struct Name{
   
			//一些基本的数据结构或者自定义的数据类型
	};

例如,存储一个学生的学号、姓名、性别和专业:

struct studentInfo{
   
		int id;
		char name[20];
		char gender;//'F' or 'M'
		char major[100];
	}Bob,Alice,stu[1000];

其中studentInfo是这个结构体变量的类型名,内部定义了id(学号)、name(姓名)、gender(性别)、major(专业),这些就是单个学生的信息。而在大括号外定义了studentInfo型的Bob和Alice代表两个结构体变量,之后的stu[1000]就是当有很多学生需要定义时的一个结构体数组。

结构体变量和数组除了可以跟在大括号外定义外,也可以按照基本数据类型那样定义。如:

studentInfo Bob;
studentInfo stu[1000];

注意:结构体里面可以定义除了自己本身之外的任何数据类型,不过虽然不能定义自己本身,但可以定义自身类型的指针变量。如:

struct node{
   
		node n;//不能定义node型变量
		node* n;//可以定义node*型指针变量
	}

2.8.2 访问结构体内的元素

访问结构体内的元素有两种方法:" . “操作和” -> "操作。如:

#include<stdio.h>
/*定义一个结构体studentInfo存储学生信息
        id(学号)、name(姓名)、指针next用于指向下一个学生的地址
        分别定义了一个结
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值