结构体学习

struct是结构体关键字

我们用C语言中通常都是用关键字来定义类型变量。例如我们的整型变量,int book;是用整型关键字定义出来的。同样的,struct book同样是一个类型,不过我们叫他结构体。我认为的结构体的作用,无外乎是将一些毫无关系的变量整合到一起,来达到产生联系。整合到一起就是把它封装在结构体中。

下面我举个例子:

cs 复制代码
#include<stdio.h>
typedef struct Student 
{
	char name[30];
	short age;
	char sex[10];

}Stu;

typedef struct Book
{
	char bookname[20];
	short price;
	Stu m;
}B;
int main()
{
	//用typedef关键字将结构体类型重定义一个名字叫Stu
	//Stu就是类型名,类似int
	 Stu s= {"溟有常青木",18,"男"};
	 printf("%s\n",s.name);
	 printf("%d\n",s.age);
	 printf("%s\n",s.sex);
	 //这是麻烦一点的写法
	 printf("打印学生信息\n");
	 struct Student m = {"张三",19,"男"};
	 printf("%s\n", m.name);
	 printf("%d\n", m.age);
	 printf("%s\n", m.sex);
	 printf("打印书的结构体信息\n");
	 B b1 = { "C语言程序设计",55,m};
	 printf("%s\n", b1.bookname);
	 printf("%d\n", b1.price);
	 printf("%s\n",b1.m.name);
	return 0;
}

通过结构体,我们将姓名,年龄,性别这些本来毫不相关的变量,把它封装在结构体中,让别人更加清楚的描述一个物体。

被封装在结构体中的变量可以是整型变量,数组,指针,结构体。

这里调用封装在结构体中的变量,用结构体名.变量名的形式,当然,你也可以用指针。

cs 复制代码
#include<stdio.h>
typedef struct Student 
{
	char name[30];
	short age;
	char sex[10];

}Stu;

typedef struct Book
{
	char bookname[20];
	short price;
	Stu m;
}B;
int main()
{
	//用typedef关键字将结构体类型重定义一个名字叫Stu
	//Stu就是类型名,类似int
	 Stu s= {"溟有常青木",18,"男"};
	 Stu student = { "阿西吧",18,"男" };
	 printf("%s\n",s.name);
	 printf("%d\n",s.age);
	 printf("%s\n",s.sex);
	 //这是麻烦一点的写法
	 printf("打印学生信息\n");
	 struct Student m = {"张三",19,"男"};
	 printf("%s\n", m.name);
	 printf("%d\n", m.age);
	 printf("%s\n", m.sex);
	 printf("打印书的结构体信息\n");
	 B b1 = { "C语言程序设计",55,m};
	 printf("%s\n", b1.bookname);
	 printf("%d\n", b1.price);
	 printf("%s\n",b1.m.name);
	 Stu* stu = &student;
	 printf("打印阿西吧信息\n");
	 printf("%s\n",stu->name);
	 printf("%d",(*stu).age);
	return 0;
}
相关推荐
夕除7 小时前
Redis 过期策略
redis·笔记·面试
Nuanyt8 小时前
Agent 学习笔记(下篇三):上线工程、进阶选择与操作界面(Stage 7 / 7.5 / 8 + 延伸路线)
笔记·python·学习·memory·aiagent·harness
叼烟扛炮10 小时前
Linux 学习笔记(四十一):TCP 并发演进——从单进程到多线程服务器
linux·运维·服务器·网络·笔记·学习·tcp/ip
叼烟扛炮10 小时前
Linux 学习笔记(四十三):网络编程进阶——自定义协议解决 TCP 粘包与守护进程
linux·开发语言·网络·笔记·tcp/ip
songyuc10 小时前
【Manskill3】TableSceneBuilder学习笔记
pytorch·笔记·学习
゛凌乱的记忆づ12 小时前
好用的md文件编辑器——TyporaS与Typora
笔记·git·typora·markdown
zroooo13 小时前
计算机学习-知识庞大而繁杂
笔记·学习
泛凡(Linyongui)13 小时前
基于 CW32L010 的智能厨卫调温旋钮方案--低成本 EC21 编码旋钮全解析
单片机·嵌入式硬件·c#
坤坤子吖13 小时前
算法学习——单调队列
开发语言·c++·笔记·学习·算法
Zhao-Jichao14 小时前
AI Prompting for Everyone 课程笔记 - 05 使用深度搜索 Using Deep Research
人工智能·笔记