首页 > 编程语言 >2024-2025-1 20241403 《计算机基础与程序设计》第十三周学习总结

2024-2025-1 20241403 《计算机基础与程序设计》第十三周学习总结

时间:2024-12-20 21:41:59浏览次数:10  
标签:20241403 定义 成员 数据类型 2024 2025 共用 指针 结构

2024-2025-1 20241403 《计算机基础与程序设计》第十三周学习总结

作业信息

这个作业属于哪个课程 <班级的链接>(如2024-2025-1-计算机基础与程序设计
这个作业要求在哪里 <作业要求的链接>(如2024-2025-1计算机基础与程序设计第一周作业)
这个作业的目标 结构体的定义 结构体数组的定义和初始化 结构体指针定义和初始化 向函数传递结构体 共用体 枚举数据类型 动态数据类型 单向链表
作业正文 https://www.cnblogs.com/chenqiqi/p/18620000

教材学习内容总结

结构体的定义
结构体是一种复合数据类型,它允许将多个不同类型的数据组合成一个单一的类型。结构体的定义以struct关键字开始,后跟结构体的名称,然后是一对花括号,其中包含一系列的成员声明。

结构体数组的定义和初始化
结构体数组是存储多个相同类型结构体的数组。定义结构体数组时,需要指定数组的大小。结构体数组的初始化可以在定义时完成,通过为每个结构体成员指定初始值。

结构体指针定义和初始化
结构体指针是指向结构体的指针。定义结构体指针时,使用结构体类型和星号(*)。结构体指针可以被初始化为指向已存在的结构体实例,或者动态分配内存来创建新的结构体实例。

向函数传递结构体
结构体可以通过值传递或引用传递给函数。值传递会复制整个结构体,而引用传递(即指针传递)则允许函数直接修改原始结构体。

共用体
共用体是一种特殊的数据类型,允许在相同的内存位置存储不同的数据类型。共用体的定义与结构体类似,但是共用体的所有成员共享同一块内存空间。

枚举数据类型
枚举是用户定义的类型,它为一组整数值提供了有意义的名称。枚举的定义以enum关键字开始,后跟枚举的名称(可选),然后是一对花括号,其中包含一系列的枚举常量。

动态数据类型
动态数据类型指的是在程序运行时动态分配和释放的数据类型。这通常通过标准库函数malloc、calloc、realloc和free来实现。动态内存管理允许程序在运行时根据需要分配和释放内存。

单向链表
单向链表是一种线性数据结构,由节点组成,每个节点包含数据部分和一个指向下一个节点的指针。单向链表的头节点指向链表的第一个元素,而最后一个节点的指针通常设置为NULL。单向链表支持在链表的任何位置插入和删除节点。

教材学习中的问题和解决过程(先问 AI)

  • 问题1:共用体和结构体的区别
  • 问题1解决方案:
    共用体(Union)和结构体(Struct)在C语言中都是复合数据类型,但它们之间有几个关键的区别:
    内存占用:
    结构体:结构体中的所有成员都有自己的内存空间。即使它们是同一类型的数据,也会分别存储。
    共用体:共用体的所有成员共享同一块内存空间。这意味着在任何时候,只能使用共用体的一个成员,因为它们在内存中是重叠的。

成员访问:
结构体:可以同时访问结构体的所有成员,它们是独立的。
共用体:虽然可以定义多个成员,但任何时候只能使用一个成员,因为它们共享内存。访问一个成员可能会覆盖其他成员的值。

大小:
结构体:结构体的大小是其所有成员大小的总和,加上可能的填充(padding)以满足对齐要求。
共用体:共用体的大小等于其最大成员的大小,因为它们共享内存空间。

用途:
结构体:用于需要存储多个不同类型数据项的情况,这些数据项可以同时被访问。
共用体:用于节省空间的情况,或者当你需要存储几种不同类型的数据,但在同一时间只需要使用其中一种类型。

初始化:
结构体:可以初始化所有成员。
共用体:只能初始化一个成员,因为所有成员共享内存。

数组和指针:
结构体:可以创建结构体数组和指向结构体的指针,这使得处理多个结构体实例变得容易。
共用体:也可以创建共用体数组和指向共用体的指针,但由于成员共享内存,使用时需要特别注意。

成员对齐:
结构体:编译器可能会在结构体成员之间插入填充字节,以满足特定的对齐要求。
共用体:由于成员共享内存,通常不会有额外的填充,除非编译器为了对齐整个共用体而添加。

基于AI的学习

代码调试中的问题和解决过程

  • 问题1:当再次打开程序,输入输入学生信息时,重新输入的学生信息会把之前旧的学生信息替代掉。

  • 问题1解决方案:
    在新添加学生信息时,多加一个变量“total”表示之前学生的人数,先把之前的学生信息读出来,然后在Readstu函数调用时从“stu+之前学生人数”这个位置开始调用,并且在把学生信息存入文件时,学生个数为“新添加学生人数+旧的学生人数”,改后代码如下:

  • 问题2:在写Sort函数中需要交换数据,我一开始是把结构体中的数据一个个交换,这样写代码显得很冗杂。

  • 问题2解决方案:定义一个结构体变量temp,可以直接交换结构体。

其他(感悟、思考等,可选)

我现在的代码比之前进步了很多,但是在第一次调试时还是会有一些语法错误,所以我应该多加练习,争取不再出现语法错误。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第十三周 500/6000 1/13 20/20
第十四周 0/6500 0/14 18/38
第十五周 0/7000 0/15 22/60

标签:20241403,定义,成员,数据类型,2024,2025,共用,指针,结构
From: https://www.cnblogs.com/chenqiqi/p/18620000

相关文章

  • (2024.12)记录——Ubuntu20.04安装opencv库
    参考博文:Ubuntu20.04OpenCV详细安装教程(附多版本切换共存教程)_ubuntu20.04安装opencv-CSDN博客Ubuntu20.04上搭建OpenCV4.5.0&C++环境从源码构建1---下载官网地址:Releases-OpenCV选择需要的版本,点击Sources下载zip源码压缩包,下载后解压。2---编译过程1>安装工......
  • 20222418 2024-2025-1《网络与系统攻防技术》实验八实验报告
    1.实验内容(1)Web前端HTML能正常安装、启停Apache。理解HTML,理解表单,理解GET与POST方法,编写一个含有表单的HTML。(2)Web前端javascipt理解JavaScript的基本功能,理解DOM。在(1)的基础上,编写JavaScript验证用户名、密码的规则。在用户点击登陆按钮后回显“欢迎+输入的用户名”尝......
  • Windows Server 2025 中部署云桌面(尤其是涉及到 GPU-P 和 vGPU 技术的配置),以下是详细
    WindowsServer2025中部署云桌面(尤其是涉及到GPU-P和vGPU技术的配置),以下是详细的步骤说明,涵盖了硬件要求、服务配置、以及具体的服务器安装与角色部署过程。1.硬件要求:在部署GPU-P(GPU分配)技术和vGPU技术的Hyper-V环境云桌面时,硬件要求如下:64位处理器,支持以下其......
  • 【教学类-83-03】20241218立体书盘旋蛇3.0——圆点蛇1(蚊香形)
    背景需求:制作儿童简易立体书贺卡【教学类-83-01】20241215立体书三角嘴1.0——小鸡(正菱形嘴)-CSDN博客文章浏览阅读1k次,点赞24次,收藏18次。【教学类-83-01】20241215立体书三角嘴1.0——小鸡(正菱形嘴)https://blog.csdn.net/reasonsummer/article/details/143987230【教学类......
  • NOIP2024游记
    由于这次打的挺满意所以少写点吧Day0:蹭了HZ的车去南航,然后坐地铁去南外,搞笑没出九华山站就碰见了16件NFLS校服,和回家一样了住在去年暑假集训的宾馆,但是可惜没有住在同一个房间晚上和gty,zzy,jhr一起吃饭,席上轮流给E队队爷,HZ的1队队长,whk巨佬端茶倒水,回去后在zzy房里摆了1.5......
  • 2024-2025-1 20241320 《计算机基础与程序设计》第13周学习总结
    2024-2025-120241320《计算机基础与程序设计》第13周学习总结作业信息|这个作业属于哪个课程|https://edu.cnblogs.com/campus/besti|这个作业要求在哪里|https://www.cnblogs.com/rocedu/p/9577842.html#WEEK13|这个作业的目标|加入云班课,参考本周学习资源自学教材《C......
  • 2024年未通过高企的8个关键原因
    高企申报、材料评审、后期审查等环节趋于规范化,很多企业在准备高企申报材料的过程中存在困难。今天我们从近年未通过高企的8个关键原因来了解2025年高企申报需要如何规划!1、企业申报的领域问题:不属于(国家重点支持的高新技术领域,电子信息、生物与新医药、航空航天、新材料......
  • 2024年12月20日Github流行趋势
    项目名称:EbookFoundation/free-programming-books项目维护者:vhf,eshellman,davorpa,MHM5000,kadhirash等项目介绍:免费的编程书籍集合项目star数:342,145项目fork数:62,055项目名称:microsoft/PowerToys项目维护者:crutkas,bao-qian,qianlifeng,jaimecbernardo,......
  • 20222415 2024-2025-1 《网络与系统攻防技术》实验八实验报告
    1.实验内容(1)Web前端HTML能正常安装、启停Apache。理解HTML,理解表单,理解GET与POST方法,编写一个含有表单的HTML。(2)Web前端javascipt理解JavaScript的基本功能,理解DOM。在(1)的基础上,编写JavaScript验证用户名、密码的规则。在用户点击登陆按钮后回显“欢迎+输入的用户名”尝......
  • 我的 2024 年终总结
    好久没写博客了,2024年又是动荡的一年,因为空降了新领导,导致想晋升的期望夭折,对我的总体满意度不是很认可,简单回顾下2024年自己工作吧,首先工作方面1、工作的主要职责还是更多偏向于业务测试,业务迭代比较频繁,没有做深入的测试工作,这是新领导认为做的不够的地方2、公司总体对项目规......