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

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

时间:2023-12-20 22:35:10浏览次数:42  
标签:200 20231313 数据类型 50 2024 2023 对齐 数据 结构

2023-2024 20231313《计算机基础与程序设计》第十二周学习总结

作业 速达
作业课程 班级链接
作业要求 计算机基础与程序设计第十三周学习总结
作业内容 《C语言程序设计》第12章并完成云班课测试
作业正文 我的作业


目录

教材总结

总结

结构体(struct):
结构体是由一系列具有相同类型或不同类型的数据构成的数据集合1。
结构体可以存储不同类型的数据,如 int、float、char 等3。
结构体的声明使用 struct 关键字,例如:

struct Info {
    unsigned long identifier; //学号,用无符号长整数表示
    char name[20]; //名字,用字符数组表示
    unsigned int year; //入学年份,用无符号整数表示
    unsigned int years; //学制,用无符号整数表示
};

结构体成员的访问采用点号运算符.2。例如,info.name 就是引用 info 结构体的 name 成员。

数据库结构:
在C语言中,由于无法直接操作数据库,所以在项目中通过对结构体内部变量的操作将大量的数据存储在内存中,以完成对数据的存储和操作1。
结构体可以用来模拟数据库中的记录。例如,一个学生的信息就需要学号(字符串),姓名(字符串),年龄(整形)等等。这些数据类型都不同但是他们又是表示一个整体,要存在联系,那么我们就需要一个新的数据类型。——结构体,它就将不同类型的数据存放在一起,作为一个整体进行处理1。

学习过程的问题

理解问题是第一个:结构体是一种复合数据类型,需要理解如何将多种不同类型的数据组合在一起。
C语言中,结构体的大小并不是其所有成员大小之和,而是考虑到了内存对齐。这会导致在计算结构体大小时出现错误。

《C语言程序设计》第十二章

结构体是一种数据类型,它可以由多个不同类型的数据组成。结构体的定义方式与基础数据类型类似,但是需要在定义时指定结构体中包含的数据类型和名称。结构体可以用于封装多个数据,方便进行操作。在实际项目中,结构体是大量存在的。研发人员常使用结构体来封装一些属性来组成新的类型。由于C语言无法操作数据库,所以在项目中通过对结构体内部变量的操作将大量的数据存储在内存中,以完成对数据的存储和操作。在实际问题中有时候我们需要几种数据类型一起来修饰某个变量。例如一个学生的信息就需要学号(字符串),姓名(字符串),年龄(整形)等等。这些数据类型都不同但是他们又是表示一个整体,要存在联系,那么我们就需要一个新的数据类型——结构体,它就将不同类型的数据存放在一起,作为一个整体进行处理。结构体在函数中的作用不是简便,其最主要的作用就是封装。封装的好处就是可以再次利用。让使用者不必关心这个是什么,只要根据定义使用就可以了。结构体的大小不是结构体元素单纯相加就行的,因为我们现在主流的计算机使用的都是32Bit字长的CPU,对这类型的CPU取4个字节的数要比取一个字节要高效,也更方便。所以在结构体中每个成员的首地址都是4的整数倍的话,取数据元素时就会相对更高效,这就是内存对齐的由来。每个特定平台上的编译器都有自己的默认“对齐系数”(也叫对齐模数)。程序员可以通过预编译命令#pragmapack(n),n=1,2,4,8,16来改变这一系数,其中的n就是你要指定的“对齐系数”。规则1、数据成员对齐规则:结构(struct)(或联合(union))的数据成员,第一个数据成员放在offset为0的地方,以后每个数据成员的对齐按照#pragmapack指定的数值和这个数据成员自身长度中,比较小的那个进行。2、结构(或联合)的整体对齐规则:在数据成员完成各自对齐之后,结构(或联合)本身也要进行对齐,对齐将按照#pragmapack指定的数值和结构(或联合)最大数据成员长度中,比较小的那个进行。3、结合1、2可推断:当#pragmapack的n值等于或超过所有数据成员长度的时候,这个n值的大小将不产生任何效果。

基于AI的学习




代码行数(新增/累积) 学习时间(新增/累积)
目标 2000行 100小时
第一周 50/50 2/2
第二周 50/50 2/2
第三周 50/50 2/2
第四周 50/50 2/2
第五周 300/300 2/2
第六周 300/300 2/2
第七周 200/200 1/1
第八周 200/200 1/1
第九周 200/200 1/1
第十周 150/150 1/1
第十一周 250/250 1.5/1.5
第十二周 200/200 1.2/1.2
第十三周 200/200 1.2/1.2

标签:200,20231313,数据类型,50,2024,2023,对齐,数据,结构
From: https://www.cnblogs.com/raymongillichmks/p/17917592.html

相关文章

  • 2023.12.20 日记
    挺久没写的了。防止这里长草来写一点。上周并没有回家。周一去参加入团仪式,晚上回到纪中,汤老师找我谈话,本来以为是很严肃的一次警告,没想到,她和我谈了很多人生的意义。包括她的过去,我的现在。最近这一年我一直处于一种迷茫里。现在好了很多。这确实是一个负责的老师。老师分为......
  • 2023.12.20
    复习软件设计,明天就要考试了,加油!结构型模式(7种)适配器模式例子仿生机器人、加密适配器桥接模式例子模拟毛笔组合模式例子文件和文件夹水果盘装饰模式例子变形金刚、多重加密系统外观模式(门面模式) 例子电源总开关享元模式定义运用共享技术有效地支......
  • CSP&NOIP 2023 游记
    今日是2023.12.20.先写CSP吧。在本校考试。具体的记忆都模糊了。花了30分钟过了A,认为实在是不可置信。然后看B,感觉是括号匹配,首先有一个平方的算法,可以拿50分。看了一眼C,感觉是一坨屎。D当时觉得很难。于是15:00到16:00什么都没做。到了16:00想到B的解法......
  • 【2023年网络安全优秀创新成果大赛专刊】银行数据安全解决方案(天空卫士)
    在2023年网络安全优秀创新成果大赛,成都分站中,天空卫士银行数据安全方案获得优秀解决方案奖。与此同时,天空卫士受信息安全杂志邀请,编写《银行数据安全解决方案》。12月6日,天空卫士编写的《银行数据安全解决方案》做为优秀论文在信息安全杂志2023年11月增刊上发表。信息安全研究......
  • 2023.12.20——每日总结
    学习所花时间(包括上课):9h代码量(行):0行博客量(篇):1篇今天,上午学习,下午学习;我了解到的知识点:1.设计模式明日计划:学习......
  • THUPC 2024 初赛部分题解和游记
    我们队赛时被J题创死了awa离做出来差一个剪枝,而且赛后试了试不加剪枝甚至能过……6题离场。一些题解J套娃先对\([0,n]\)中每个数\(k\)分别考虑。假设总共出现了\(c\)次\(k\),第\(i\)次出现的位置是\(pos_{i}\),(令\(pos_0=0,pos_{c+1}=n+1\)),则只有处在\(pos_{......
  • Trick 信友队2023
    就是收集了trick。线段树的扩展用法单侧递归线段树历史最大值线段树(卢瑞恩)\(\text{SegmentTreeBeats}\)其中历史最大值线段树和\(\text{SegmentTreeBeats}\)的历史最值操作可以结合。如果由区间修改操作会影响\(\text{SegmentTreeBeats}\)的势能,具体的,每操作......
  • 2023-12-20 闲话 大学生活和我的理想
    我想有一个单间,它能隔音,有扇窗户,冬天能是暖和的,夏天能是凉快的。有一张足够长的床,装得下我有点高的身体;有一个衣柜,落地,能让秋裤不用被叠起来;有一个书架,最好有三四层,层高大于A4纸;在我手边而不是脑门上。有一张桌子,宽度能放得下我的笔记本电脑,机械键盘,和我的草稿纸以及我有点长的......
  • 【愚公系列】2023年12月 通用职责分配原则(九)-受保护变量原则(Protected Variations
    ......
  • 2023-12-20:用go语言,给定一个数组arr,长度为n,在其中要选两个不相交的子数组。 两个子数
    2023-12-20:用go语言,给定一个数组arr,长度为n,在其中要选两个不相交的子数组。两个子数组的累加和都要是T,返回所有满足情况中,两个子数组长度之和最小是多少?如果没有有效方法,返回-1。正式:2<=n<=10^60<=arr[i]<=100001<=T<=10^8扩展:2<=n<=10^6-10000<=arr[i]<=1......