C语言
文章平均质量分 84
C语言学习
南汐以墨
这个作者很懒,什么都没留下…
展开
-
c语言简洁版的扫雷游戏实现
大小的棋盘,但是,我们每个人需求不一致,想玩的棋盘大小不一致,所以我们的头文件派上用场了,我们在头文件里进行宏定义我们的行和列,然后在函数实现源文件和游戏实现的源文件里包含头文件,当我们想修改棋盘大小时,就直接在宏定义里修改数值就行,很方便。,以及我们要在主函数中写一个随机种子函数(并使用时间戳),但是,我们我们为了简单实现,就随便布置了10个雷,但也不一定都是10个雷,我们也可以修改,所以我们在头文件了进行宏定义。然而,在布置雷的时候,我们也要判断当前是否有雷,没有雷就不布置了,所以用到了if语句。原创 2023-11-05 10:45:44 · 36 阅读 · 0 评论 -
浅梳结构体所学知识
如果我们能保证将所有的double类型的数据的地址都对⻬成8的倍数,那么就可以 ⽤⼀个内存操作来读或者写值了。4.如果嵌套了结构体的情况,嵌套的结构体成员对齐到自己的成员最大对齐数的整数倍处,结构体的整体大小就是所有最大对齐数(含嵌套结构体中成员的对齐数)的整数倍。所以,这个结构体,内存为此分配了9个字节的空间,其中空出来的也是被分配的,只是没有用,这就发生了内存的浪费。3.结构体总大小为最大对齐数(结构体中每个成员变量都有一个对齐数,所有对齐数中最大的)的。那我们这些都做好后,我们想访问它如何做呢?原创 2023-12-06 09:43:46 · 49 阅读 · 2 评论 -
浅梳数据在内存中的存储知识
E不全为0或不全为1 这时,浮点数就采⽤下⾯的规则表⽰,即指数E的计算值减去127(或1023),得到真实值,再将有效 数字M前加上第⼀位的1。但是,我 们知道,科学计数法中的E是可以出现负数的,所以IEEE 754规定,存⼊内存时E的真实值必须再加上 ⼀个中间数,对于8位的E,这个中间数是127;这时,浮点数的指数E等于1—127(或者1—1023)即为真实值,有效数字M不在加上第一位的1,而是还原为0.xxxxxx的小数,这样是为了表示±0,以及接近于0的很⼩的数字。原创 2023-12-03 10:53:53 · 20 阅读 · 1 评论 -
浅梳文件操作所学内容
我们程序的数据需要输出到各种外部设备,也需要从外部设备获取数据,不同的外部设备的输⼊输出 操作各不相同,为了⽅便程序员对各种设备进⾏⽅便的操作,我们抽象出了流的概念,我们可以把流想象成流淌着字符的河。在我们写程序的时候,数据是存放在内存当中的,当程序结束的时候,系统就会回收内存,这时候我们的数据就不见了,所以为了数据的持久化保存,我们就用了文件进行保存。因为有缓冲区的存在,C语言在操作文件的时候,需要做刷新缓冲区或者在文件操作的时候关闭文件(这个操作也会刷新缓冲区),如果不做,可能导致读写文件出现异常!原创 2023-12-13 20:45:56 · 29 阅读 · 1 评论 -
浅谈编译和链接
当我们创建一个.c文件的然后往里面写入代码,然后点击运行,然后结果呈现在我们的屏幕面前,这个过程,是不是.c文件就直接被机器识别到了呢?:将源代码程序被输⼊扫描器,扫描器的任务就是简单的进⾏词法分析,把代码中的字符分割成⼀系列 的记号(关键字、标识符、字⾯量、特殊字符等)◎ 将#include预编译指令,把里面的内容插入到该指令的位置,这个过程是存在递归过程的,因为该头文件也可能包含其他文件。当我们运行这个.c的代码的时候,并且其结果呈现在我们的屏幕中的时候,就经历两种环境——翻译环境和运行环境。原创 2024-01-22 10:38:27 · 1587 阅读 · 0 评论 -
浅梳所学内容
因为我们知道数组的里面的元素在内存是连续存放的,同时数组名还代表着首元素的地址,所以,当我们将第一个元素地址存在指针变量里面,这样当我们想找第二个元素的时候,我们知道第一个元素地址后就顺藤摸瓜找到第二个了。举个例子,当我们创建个函数是其进行数值交换,假设我们不用指针实现,当我们完成这个函数,然后运行发现,两个数并没有交换,这是因为,不用指针的时候,函数调用是传值调用,到这里,我们就可以想象下,当我们将数组传参的时候传给一个函数时,是将首元素的地址传给函数。因为,既然是指针变量,那么变量就会有地址。原创 2023-11-30 20:22:54 · 28 阅读 · 1 评论