C语言
文章平均质量分 95
本专栏包含了C语言重点精华部分
无双@
Get ur shit together man
展开
-
程序的编译(预处理操作)+链接
编译是将源代码转换为目标代码的过程,目标代码是二进制指令集,可以直接在计算机上执行。编译器将源代码逐行翻译成目标代码,常见的编译器有gcc、clang等。链接是将编译器生成的目标代码合并成可执行文件的过程。当多个源文件进行编译后,会生成多个目标文件,链接器将这些目标文件合并成一个可执行文件,并处理各种符号表和重定向等问题,使得程序能够正常运行。常见的链接器有ld、lld等。在编译时,编译器通常需要使用头文件和库文件。头文件是一系列函数和变量的声明,通常以.h为后缀,可以让编译器知道这些函数和变量的定义。原创 2023-10-18 13:02:21 · 697 阅读 · 5 评论 -
通讯录的完善(文件操作)
对于我们之前利用动态内存实现的通讯录来说,存在一个严重的问题。就是当我们的程序运行结束,此时我们在通讯录所添加的全部联系人信息会全部丢失。通过上一篇blog的学习,我们知道程序的数据是在内存中运行,当程序结束时,系统就会自动收回我们程序开辟好的空间,里面的数据也就随之丢失。那我们在这里,我们想要实现一种通讯录,我们在这个通讯录创建的联系人全部不会丢失。这就不得不使用我们已经学习了的操作——————文件操作。通讯录的实现可以访问以下链接:运用动态内存实现通讯录(增删查改+排序)-CSDN博客。原创 2023-10-11 17:00:06 · 235 阅读 · 13 评论 -
初识 C语言文件操作
我们在之前实现的通讯录中,我们不难发现,当我们添加了足够多的联系人时点击显示确实是可以将我们添加了的联系人的各个信息显示出来。但是当我们退出程序,再想显示我们刚刚添加的联系人时,就会得到一句“该通讯录为空”。所以在此,我们想要实现一种通讯录,是可以将我们的联系人的全部信息永久保存下来。这就引入了一个C语言新概念:《文件操作》程序在运行时,里面的数据都是存放在内存中的,如果我们想要存放这些数据不至于丢失,可以使用文件来保存。因为文件是存放在硬盘上的!原创 2023-10-10 21:47:50 · 465 阅读 · 9 评论 -
运用动态内存实现通讯录(增删查改+排序)
通讯录通常是一个记录联系人信息的电子或纸质文件,包括名称、电话号码、电子邮件地址、物理地址等。通讯录旨在方便人们在需要联系某个人或组织时快速找到相关信息。现代通讯录通常是数字化的,可以存储在计算机、智能手机或云服务器中,也可以在社交媒体等在线平台上创建。通讯录是现代社交和商务通信的重要工具之一,有助于帮助人们管理他们的联系人,从而更好地进行社交和商务交流。#define MAX_CONTACTS 100 // 最大联系人数// 联系人结构体// 联系人数组// 当前联系人数。原创 2023-10-01 19:58:00 · 4596 阅读 · 16 评论 -
初识动态内存分配
以上就是关于动态内存的内容了,学习完后下来可以自己动手在VS中使用动态内存创建创建空间,熟练使用它们。在接下来的blog中我们将会实现通讯录的创建运用动态内存管理。所以在此基础上,我们最好可以进行复习结构体和动态内存的相关知识。记住:“坐而言不如起而行”dynamic_memory_question_CSDN/dynamic_memory_question_CSDN/test.c · 无双/test_c_with_X1 - Gitee.com。原创 2023-09-30 16:01:39 · 553 阅读 · 10 评论 -
详解自定义数据类型
在之前的学习中,我们已对分支和循环、函数以及指针有了深刻的了解,但是对于生活中的一些对象例子我们难以仅仅使用上述学习的内容进行解决。所以在本文,我们引入了一个新的概念,也是一个新的数据类型,即结构体数据类型。下面我们需要先了解一下结构体:结构体(struct)是由一系列具有相同类型或不同类型的数据构成的数据集合,也叫结构。结构体和其他类型基础数据类型一样,例如int类型,char类型只不过结构体可以做成你想要的数据类型。以方便日后的使用。在实际项目中,结构体是大量存在的。原创 2023-09-28 18:08:17 · 640 阅读 · 7 评论 -
模拟实现memcpy和memmove
在上一篇blog中,我们探讨了有关strcpy和strcmp等的字符串函数和对其的模拟实现。今天,我们着重讨论有关memcpy和memmove这两种内存函数,并模拟实现它们。首先我们要知道内存函数和字符串函数的区别,字符串函数像strcpy和ctrcmp的使用对象都为字符串,而面对整形或者浮点型就不适用了,因此我们在这里引出了内存函数。内存函数像memcpy和memmove等的使用对象是内存中的各个数据,不仅仅可以对于字符串还可以对整形数组或者字符数组进行操作。接下来我们来介绍这两个函数。原创 2023-09-21 13:25:04 · 313 阅读 · 9 评论 -
模拟字符串函数
翻译过来,就是一个头文件,定义包含了一些使用C 字符串和数组的函数。以上就是头文件string.h的定义。以上代码是在string.h中模拟实现部分字符串函数,后续我会继续补充更多的内容。记住“坐而言不如起而行”The_character_function_CSDN/The_character_function_CSDN/test.c · 无双/test_c_with_X1 - Gitee.com。原创 2023-09-19 18:02:14 · 186 阅读 · 3 评论 -
攻破《数组与指针》相关笔试题(二)
以上内容和上一篇blog内容为数组与指针在面试中遇到的常见面试题,我们已带领大家逐一攻破,在接下来的时间我们可以重新阅读,并动手解决。其中第八题的含金量尤为之高,下来可以对第八题进行多次练习,并且尝试给自己讲解,知道能自圆其说的讲解完毕。原创 2023-09-18 15:42:31 · 530 阅读 · 5 评论 -
攻破《数组与指针》相关笔试题(一)
对于该题目来说,先判断sizeof内部,由题可知sizeof(arr1),内部数据为数组名arr1,所以arr1表示去出整个数组的大小,又该数组的返回值为char类型,所以该数组的每个元素为char类型,char类型在内存中占1个字节。b[0]是第一行的数组名,&b[0]取出的是数组的地址,取出的是第一行这个一维数组的地址,类型就是int(*)[4],那么&b[0] + 1就是第二行的地址。内部现在不是仅为数组名a了,是&a,那么肯定会有人觉得&a表示的就是整个数组的地址,所以答案是16字节。原创 2023-09-17 22:36:31 · 366 阅读 · 4 评论 -
利用递归详解《汉诺塔游戏》
汉诺塔(Tower of Hanoi),又称河内塔,是一个源于印度古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。今天我们就运用c语言来实现《汉诺塔游戏》的实现。原创 2023-09-25 15:26:30 · 540 阅读 · 9 评论 -
自主实现qsort函数
以上就是实现my_qsort函数的底层逻辑和代码演示。自主实现该函数可以提高我们对函数调用和回调函数的使用的熟练程度。这里需要注意的是对一下代码的理解:这一部分在上面讲的十分清楚,第一遍看不懂很正常,多看几遍就可以熟练,熟练之后就可以尝试自主编写。my_qsort/my_qsort/test.c · 无双/test_for_code_with_X1 - Gitee.com其中对当中细节讲解也很到位。学习了解之后下来,可以进行适当的练习。记住“坐而言不如起而行!在以后的学习中要保持空杯形态。原创 2023-09-13 14:02:19 · 328 阅读 · 1 评论 -
《扫雷》的完善修改
此次blog利用了递归操作实现了对扫雷游戏的修改,使得游戏的可玩性大大提高。Game with C: 这一仓库全部以c语言编写的小游戏 - Gitee.com看懂这些代码还需要动手写一写。要记住:“坐而言不如起而行!原创 2023-09-14 14:52:26 · 309 阅读 · 4 评论 -
C语言实现《扫雷》
扫雷》是一款大众类的益智小游戏,于1992年发行。游戏目标是在最短的时间内根据点击格子出现的数字找出所有非雷格子,同时避免踩雷,踩到一个雷即全盘皆输。1992年4月6日,扫雷和纸牌空当接龙等小游戏搭载在Windows 3.1系统中与用户见面,主要目的是让用户训练使用鼠标。这个游戏的玩法很简单,有初级、中级、高级和自定义等模式,雷区中随机布置一定数量的地雷,玩家需要尽快找出所有不是地雷的方块,但不许踩到地雷。扫雷最原始的版本可以追溯到1973年一款名为“方块”的游戏。原创 2023-09-10 18:14:30 · 520 阅读 · 1 评论 -
C语言实现《三子棋》游戏
本文仅仅实现初级的三子棋游戏,电脑下棋是随机的,所以会看起来很“呆”。原创 2023-09-05 18:36:36 · 499 阅读 · 2 评论 -
C语言实现《猜数字游戏》
对于猜数字游戏,我们首先应当打印菜单,并且要用函数的方式实现菜单的打印,并利用do...while循环和switch语句来实现菜单的选择。在生成随机数方面,要用到srand((unsigned int) time(NULL));还要记得包含头文件。以上就是怎样运用C语言实现《猜数字游戏》的全过程。原创 2023-09-01 22:14:05 · 1183 阅读 · 3 评论 -
关于数组名
数组(Array)是有序的元素序列。[1]若将有限个类型相同的变量的集合命名,那么这个名称为数组名。组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。用于区分数组的各个元素的数字编号称为下标。数组是在程序设计中,为了处理方便, 把具有相同类型的若干元素按有序的形式组织起来的一种形式。[1]这些有序排列的同类数据元素的集合称为数组。除了“sizeof(数组名)”和“&数组名”以外,所有的数组名指的都是数组首元素的地址。原创 2023-08-30 23:18:34 · 832 阅读 · 0 评论 -
如何编写第一个c语言程序
用于记录当前学习内容原创 2023-08-21 00:19:27 · 149 阅读 · 2 评论