[C 语言] 嵌套结构体

结构体理解:

        起始结构体就是一个类型,而用这个类型下有不同的成员。 每个成员在共同的类型下有相同的属性。

比如有一个班级的类,班级的类下有学生这种类型,而不同的学生有名字,年龄,班级信息这种属性。学生的班级属性中含有很多班级信息,这时候就要用到结构体嵌套。 

#include <stdio.h>
#include <string.h> // 用于字符串操作
#include <stdlib.h> // 解决malloc和free的声明问题// 定义班级结构体
typedef struct {char className[50];char headTeacher[50];
} Class;// 定义学生结构体,其中嵌套了班级结构体
typedef struct {char name[50];int age;Class classInfo; // 结构体嵌套,直接包含一个Class类型的成员
} Student;

int main() {// 创建班级实例Class class1 = {"三年级一班", "张老师"};// 创建学生实例,并初始化嵌套的班级信息Student student1 = {"小明", 10, class1};// 或者动态创建学生实例Student* student2 = (Student*)malloc(sizeof(Student));strcpy(student2->name, "小红");student2->age = 11;strcpy(student2->classInfo.className, "三年级二班");strcpy(student2->classInfo.headTeacher, "李老师");printf("学生姓名: %s, 年龄: %d, 所在班级: %s, 班主任: %s\n",student1.name, student1.age, student1.classInfo.className,student1.classInfo.headTeacher);if(student2 != NULL) {printf("学生姓名: %s, 年龄: %d, 所在班级: %s, 班主任: %s\n",student2->name, student2->age, student2->classInfo.className, student2->classInfo.headTeacher);free(student2); // 动态分配的内存记得释放}
}

输出:

学生姓名: 小明, 年龄: 10, 所在班级: 三年级一班, 班主任: 张老师
学生姓名: 小红, 年龄: 11, 所在班级: 三年级二班, 班主任: 李老师

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/41979.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

图片压缩代码和实际操作页面

先编写一个小工具类 package com.ai157.aigc.utils; import org.springframework.web.multipart.MultipartFile; import java.io.File; import java.io.IOException; import java.io.InputStream; public class MyFileUtils {public static File convert(MultipartFile multip…

金蝶云苍穹-插件开发(一)加载数据

前言 此系列博客是进行金蝶云苍穹开发时的插件开发的教程&#xff0c;一是在明年要是还要参加软件杯金蝶A6赛题的话&#xff0c;可以看此系列教程的博客来进行复习&#xff0c;同时如果要是我实验室的学弟学妹要参加的话&#xff0c;我这个系列的博客可以给他们提供学习参考&a…

Spark SQL----内置函数Bitwise Functions

Spark SQL----内置函数Bitwise Functions Bitwise Functions 例子&#xff1a; -- & SELECT 3 & 5; ------- |(3 & 5)| ------- | 1| --------- ^ SELECT 3 ^ 5; ------- |(3 ^ 5)| ------- | 6| --------- bit_count SELECT bit_count(0); -----------…

谷粒商城学习-10-docker安装mysql

文章目录 一&#xff0c;拉取MySQL镜像1&#xff0c;搜索MySQL的Docker镜像2&#xff0c;拉取MySQL镜像3&#xff0c;查看已经拉取的镜像 二&#xff0c;创建、启动MySQL容器1&#xff0c;使用docker run创建启动容器2&#xff0c;使用docker ps查看运行状态的容器3&#xff0c…

SpringBoot新手快速入门系列教程:基于JPA的一个Mysql简单读写例子

现在我们来做一个简单的读写Mysql的项目 1&#xff0c;先新建一个项目&#xff0c;我们叫它“HelloJPA”并且添加依赖 2&#xff0c;引入以下依赖&#xff1a; Spring Boot DevTools (可选&#xff0c;但推荐&#xff0c;用于开发时热部署)Lombok&#xff08;可选&#xff0c…

深度解析:机器学习与深度学习的关系与区别

一、前言 在人工智能领域&#xff0c;机器学习与深度学习常常被提及并广泛应用。虽然它们在本质上都是通过数据训练模型以进行预测或分类&#xff0c;但两者之间存在着显著的区别和联系。本文将深入解析机器学习与深度学习的关系与区别&#xff0c;帮助读者更好地理解和应用这…

poetry使用经验汇总

什么是poetry Poetry 是一个 Python 依赖管理和打包工具,它旨在解决 Python 项目中常见的依赖问题,提供更简洁、更可靠的依赖管理方式。以下是 Poetry 的一些主要功能和特点的总结: 依赖解析:Poetry 使用 pyproject.toml 文件来管理项目依赖,它能够自动解析依赖关系,确保…

【C++】 解决 C++ 语言报错:Use of Uninitialized Variable

文章目录 引言 使用未初始化的变量&#xff08;Use of Uninitialized Variable&#xff09;是 C 编程中常见且危险的错误之一。它通常在程序试图使用尚未赋值的变量时发生&#xff0c;导致程序行为不可预测&#xff0c;可能引发运行时错误、数据损坏&#xff0c;甚至安全漏洞。…

掌握 IPython 中的 %%bash 魔法命令:深入探索与实践

IPython 是一个强大的交互式 Python 解释器&#xff0c;它提供了丰富的功能来增强开发体验。其中一个非常实用的功能是 IPython 的“魔法命令”&#xff08;magic commands&#xff09;&#xff0c;这些命令以 %% 开头&#xff0c;用于执行特定的操作或改变 IPython 的行为。%%…

SpringMVC:SpringMVC执行流程

文章目录 一、介绍二、什么是MVC 一、介绍 Spring MVC 是一种基于Java的Web框架&#xff0c;它采用了MVC&#xff08;Model - View - Controller&#xff09;设计模式&#xff0c;通过吧Model、View和Controller分离&#xff0c;将Web层进行职责解耦&#xff0c;把复杂的Web应…

NAS 必备导航页 Homepage 外观简约但功能丰富

本文首发于只抄博客,欢迎点击原文链接了解更多内容。 前言 NAS 上的应用部署多了之后,不同的服务对应的端口很难记住,在内网中使用,一般也不会绑定域名。 此时就需要有一个导航页将 NAS 上部署的所有服务都罗列出来,方便我们直接点击访问对应的服务。 今天给大家介绍的…

【HICE】转发服务器实验

1.在本地主机上操作 2.在客户端操作设置主机的IP地址为dns 3.测试,客户机是否能ping通

anaconda中下载压缩包并用conda安装包

有时直接conda安装包时会出错&#xff1b;报错PackagesNotFoundError: The following packages are not available from current channels 比如 conda install -y bioconda::ucsc-gtftogenepred #直接安装报错 #直接下载压缩包安装https://blog.csdn.net/weixin_45552562/ar…

C++初学者指南-4.诊断---基础:警告和测试

C初学者指南-4.诊断—基础知识&#xff1a;警告和测试 文章目录 C初学者指南-4.诊断---基础知识&#xff1a;警告和测试1. 术语和技术记住&#xff1a;使用专用类型&#xff01; 2.编译器警告Gcc/CLang 编译器选项MS Visual Studio 编译器选项 3.断言运行时断言静态断言&#x…

macOS查看系统日志的方法

1、command空格键打开搜索框&#xff0c;输入‘控制台’并打开 2、选择日志报告&#xff0c;根据日期打开自己需要的文件就可以

基础物理-测量1(长度)

引言 科学和工程学基于测量和比较。因此&#xff0c;我们需要制定关于如何测量和比较事物的规则&#xff0c;并且需要实验来建立这些测量和比较的单位。 国际标准单位 1971年&#xff0c;第十四届国际计量大会选定了七个量作为基本量&#xff0c;表中列出了其中三个。 Quan…

c++习题06-ljc的储蓄计划

目录 一&#xff0c;问题 二&#xff0c;思路 1&#xff0c;思路1 2&#xff0c;思路2 三&#xff0c;代码 1&#xff0c;思路1代码 2&#xff0c;思路2代码 四&#xff0c;用例输入输出 一&#xff0c;问题 二&#xff0c;思路 1&#xff0c;思路1 定义变量&#x…

统计是一门艺术(非参数假设检验)

1.定义 当总体分布未知&#xff0c;那么就需要一种与分布具体数学形式无关的统计推断方法&#xff0c;称为非参数方法 只能利用样本中的一般信息包括位置和次序关系等 稳健性强 2.符号检验 考虑问题&#xff1a; 小样本情况&#xff1a; 以概率为1/2的二项分布是对称的 两…

找事,给年轻一代的就业解惑书

在这个快节奏、高压力的现代社会&#xff0c;我常常被一种声音所包围&#xff1a;“勤劳节俭致富”&#xff0c;仿佛这是通往幸福生活的唯一道路。然而&#xff0c;当我停下脚步&#xff0c;深入思考这背后的逻辑&#xff0c;不禁会发现&#xff0c;这不仅仅是对经济行为的简单…

剖析DeFi交易产品之UniswapV3:交易路由合约

本文首发于公众号&#xff1a;Keegan小钢 SwapRouter 合约封装了面向用户的交易接口&#xff0c;但不再像 UniswapV2Router 一样根据不同交易场景拆分为了那么多函数&#xff0c;UniswapV3 的 SwapRouter 核心就只有 4 个交易函数&#xff1a; exactInputSingle&#xff1a;指…