C++知识点之结构体

本文介绍了C++中的结构体,包括定义方式、成员的引用与初始化、结构体的嵌套以及结构体大小的计算。通过实例展示了如何使用成员运算符和指针来访问结构体成员,并解释了结构体大小的计算原则。

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

结构体定义

定义

struct   结构体名
{
  成员类型  成员名;
  成员类型  成员名;
  ...
};

e.g :

struct Student
		{
		   int  Id;
		   char name[50];
		   int age;
		   int grade;
		};

结构体使用

struct Student
		{
		   int  Id;
		   char name[50];
		   int age;
		   int grade;
		};
Student studentInfo;
或者
struct Student
		{
		   int  Id;
		   char name[50];
		   int age;
		   int grade;
		} student1,student2;

结构体成员及初始化

(1)成员运算符“.”引用结构体成员:结构体变量名.成员名

struct Student
  	{
  	   int  Id;
  	   char name[50];
  	   int age;
  	   int grade;
  	}student;
  	student.Id=0;
  	student.age=20;
  	student.grade=3;
  	strcpy(student.name,"zhangsan");

也可以定义时赋初值:

struct Student
  	{
  	   int  Id;
  	   char name[50];
  	   int age;
  	   int grade;
  	}pInfo={0, "zhangsan", 20};

(2)声明结构体指针变量,使用指向“->”运算符:结构体指针->成员名

struct Student
  	{
  	   int  Id;
  	   char name[50];
  	   int age;
  	   int grade;
  	}*sStudent;
  	sStudent->Id=0;
  	sStudent->age=20;

也可以定义时赋初值:

struct Student
  	{
  	   int  Id;
  	   char name[50];
  	   int age;
  	   int grade;
  	}*sStudent,student={0, "zhangsan", 20};
  	*sStudent=&student;

结构体的嵌套

在定义结构体时可以声明其他定义好的结构体变量,例子如下:

struct Student
  	{
  		   int  Id;
  		   char name[50];
  		   int age;
  		   int grade;
  	   struct Place
  	   {
  	       char Address[100]
  	       char Street[50];
  	   }P;
  	};
或者这样也可以:
struct Place
    {
  	   char Address[100]
  	   char Street[50];
     };
struct Student
  	{
  	   int  Id;
  	   char name[50];
  	   int age;
  	   int grade;
  	   Place P;
  	};
举个栗子:
Student student;
strcpy(student.P.Address,"China");
strcpy(student.P.Street,"Xuan Huai");

结构体大小

在没有字符对齐要求或结构成员对齐单位为1时,结构体变量的大小等于其各成员大小之和,单位是字节,用sizeof函数可以得到以字节为单位的结构体大小。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值