结构体的增删查改

结构体,是为了解决生活中的一些不方便利用c语言自带数据类型来表示的问题。例如表示一个学生,那么学生这个个体假如用c语言自带数据类型怎么表示呢。可以使用名字,也就是字符数组;也可以使用学号,也就是int类型。但是这些都不太准确,因为一个学生,他不但有学号或者名字,还应该要有性别,年龄,年级。如果想要更加准确,还需要加上出生年月以及地址等等。那么这时候很难使用c语言自带类型来表示。这样可以创建一个结构体。如图:

这样我们就是创建了一个学生的结构体蓝图,数据类型是结构体struct类型。

结构体创建

上面我们已经创建了一个结构体的蓝图。一般一个班级有多个学生,这里我们创建一个元素为5的结构体数组。来保存五个学生的数据

如图

 结构体的初始化

结构体数组创建后,现在来进行初始化。

初始化比较简单,就是要求数组的大小,然后对每一个数组元素进行初始化。

这里我使用的for循环并且将初始化封装成为了一个函数:

如图:

这是代码调试到return时的监视 以及初始化输入

 结构体的打印

结构体的打印和初始化类似。同样需要知道数组的大小,并且对每个数组成员进行遍历

 

 结构体数据的查找

现在我们已经将结构体初始化完成,我们如果想要对其中的某个数据进行操作,比如修改,删除。那么就需要进行查找,查找代码如下:(需要确定使用什么进行查找,这里使用学号查找)

 结构体数据的修改

当我们查找到结构体数据的下标之后,就可以对其进行修改。下面为代码:

 注意,以上代码在vs2022Debug环境下会有堆栈冲突问题,原因尚不明确。可能是内存的偶然性问题,因为在发布版本下可以正常应用

结构体数据的删除

删除同样需要查找下标,然后将后面的数据整体向前覆盖,同时数组的长度sz应该减1,这就需要用到指针:

 

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

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

相关文章

【解决方法】git pull报错ssh: connect to host github.com port 22: Connection timed out

问题 git pull ssh: connect to host github.com port 22: Connection timed out fatal: Could not read from remote repository.解决方法 在C:\Users\username.ssh文件夹下新建config文件,填入以下文本(如有则直接在文件最后一行新增)&am…

iOS 面试 Swift基础题

一、Swift 存储属性和计算属性比较: 存储型属性:用于存储一个常量或者变量 计算型属性: 计算性属性不直接存储值,而是用 get / set 来取值 和 赋值,可以操作其他属性的变化. 计算属性可以用于类、结构体和枚举,存储属性只能用于类和结构体。存储属性可…

【AIGC】Diffusers:加载管道、模型和调度程序

前言 拥有一种使用扩散系统进行推理的简单方法对于🧨扩散器至关重要。扩散系统通常由多个组件组成,例如参数化模型、分词器和调度器,它们以复杂的方式进行交互。这就是为什么我们设计了 DiffusionPipeline,将整个扩散系统的复杂性…

检测头篇 | 原创自研 | YOLOv8 更换 SEResNeXtBottleneck 头 | 附详细结构图

左图:ResNet 的一个模块。右图:复杂度大致相同的 ResNeXt 模块,基数(cardinality)为32。图中的一层表示为(输入通道数,滤波器大小,输出通道数)。 1. 思路 ResNeXt是微软研究院在2017年发表的成果。它的设计灵感来自于经典的ResNet模型,但ResNeXt有个特别之处:它采用…

HiveSQL题——用户连续登陆

目录 一、连续登陆 1.1 连续登陆3天以上的用户 0 问题描述 1 数据准备 2 数据分析 3 小结 1.2 每个用户历史至今连续登录的最大天数 0 问题描述 1 数据准备 2 数据分析 3 小结 1.3 每个用户连续登录的最大天数(间断也算) 0 问题描述 1 数据准备 2 数据分析 3 小…

qt信号与槽机制及使用demo

要在 Qt 中将 rclcomm 类与 MainWindow 连接,并使用 rcl->pose_uids 中的项更新 comboBox_model,您可以按照以下步骤操作: 信号与槽机制:Qt 使用信号和槽机制来处理事件和对象间通信。您可以在 rclcomm 类中定义一个信号&#…

MySQL-窗口函数 简单易懂

窗口函数 考查知识点: • 如何用窗口函数解决排名问题、Top N问题、前百分之N问题、累计问题、每组内比较问题、连续问题。 什么是窗口函数 窗口函数也叫作OLAP(Online Analytical Processing,联机分析处理)函数,可…

Python入门知识点分享——(十七)正则表达式和re模块

不好意思鸽了这么久,这几天备赛美赛没有太多时间写博客。好了闲话少叙,这次为大家带来的是正则表达式的相关介绍。正则表达式又叫做规则表达式,英文全称Regular Expression。是一种对字符串操作的逻辑公式,就是用事先定义好的一些特定字符、及…

RK3568平台 of 操作函数获取属性

一.of 操作函数获取属性 of_find_property 函数,用于在设备树中查找节点 下具有指定名称的属性。 struct property *of_find_property(const struct device_node *np, const char *name, int*lenp)np: 要查找的节点。 name: 要查找的属性的属性名。 lenp: 一个指…

Android 基础技术——列表卡顿问题如何分析解决

笔者希望做一个系列,整理 Android 基础技术,本章是关于列表卡顿问题如何分析解决 onBindViewHolder 优化 是否有耗时操作、重复创建对象、设置监听器、findViewByID、局部的动画对象等操作 是否存在内存泄漏 发生内存泄露,会导致一些不再使用…

游戏开发丨基于Tkinter的扫雷小游戏

文章目录 写在前面扫雷小游戏需求分析程序设计程序分析运行结果系列文章写在后面 写在前面 本期内容 基于tkinter的扫雷小游戏 所需环境 pythonpycharm或anaconda 下载地址 https://download.csdn.net/download/m0_68111267/88790713 扫雷小游戏 扫雷是一款广为人知的单…

RabbitMQ“延时队列“

1.RabbitMQ"延时队列" 延迟队列存储的对象是对应的延迟消息,所谓“延迟消息”是指当消息被发送以后,并不想让消费者立刻拿到消息,而是等待特定时间后,消费者才能拿到这个消息进行消费 注意RabbitMQ并没有延时队列慨念,…

【ArcGIS微课1000例】0097:栅格重采样(以数字高程模型dem为例)

Contents 1. 最邻近法(Nearest Neighbor)2. 双线性内插法(Bilinear Interpolation)3. 三次卷积法(Cubic Convolution)4. ArcGIS重采样工具(Resample)5. 注意事项栅格/影像数据进行配准或纠正、投影等几何变换后,像元中心位置通常会发生变化,其在输入栅格中的位置不一…

OpenCV-29 自适应阈值二值化

一、引入 在前面的部分我们使用的是全局阈值,整幅图像采用同一个数作为阈值。当时这种方法并不适应于所有情况。尤其是当同一幅图像上的不同部分具有不同的亮度时。这种情况下我们需要采用自适应阈值。此时的阈值时根据图像上的每一个小区域计算与其对应的阈值。因此…

com.spring4all:swagger-spring-boot-starter:1.7.1.RELEASE导致,项目启动出错

Springboot 启动出错如下: Exception in thread "main" java.lang.NoSuchMethodError: org.springframework.util.Assert.isInstanceOf(Ljava/lang/Class;Ljava/lang/Object;Ljava/util/function/Supplier;)Vat org.springframework.boot.logging.logbac…

【幻兽帕鲁】开服务器,高性能高带宽(100mbps),免费!!!【学生党强推】

【幻兽帕鲁】开服务器,高性能高带宽(100mbps),免费!!!【学生党强推】 教程相关视频地址:https://www.bilibili.com/video/BV16e411Y7Fd/ 目前幻兽帕鲁开服务器有以下几套比较性价比的…

Python编程技巧 – 函数参数

Python编程技巧 – 函数参数 Python Programming Skills - Functional Parameters 1. 函数的定义 函数有简明扼要的定义。 函数是一个代码块,仅在调用时运行。可以将数据(称为参数)传递到函数中。函数可以返回数据作为结果。 2. 函数的结…

【Vue】为什么Vue3使用Proxy代替defineProperty?

先来看看 Vue2 中 defineProperty 来操作数据: const obj {a: 1,b: 2,c: {a: 1,b: 2} } function _isObject(v) {return typeof v object && v ! null; } function observe(object) {for (let key in object) {let v object[key];if (_isObject(v)) {ob…

研发日记,Matlab/Simulink避坑指南(九)——可变数组应用Bug

文章目录 前言 背景介绍 问题描述 分析排查 解决方案 总结归纳 前言 见《研发日记,Matlab/Simulink避坑指南(四)——transpose()转置函数Bug》 见《研发日记,Matlab/Simulink避坑指南(五)——CAN解包 DLC Bug》 见《研发日记,Matlab/Si…

Hive之set参数大全-19

指定用于计算列的唯一值数(NDV,即基数)的算法 在 Hive 中,hive.stats.ndv.algo 是一个配置参数,用于指定用于计算列的唯一值数(NDV,即基数)的算法。以下是有关该参数的一些解释&…