![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言
文章平均质量分 92
不白白糖
这个作者很懒,什么都没留下…
展开
-
汉诺塔问题——【C语言】
汉诺塔问题是什么简单来讲:就是有三根柱子,记为A,B,C,其中A上有n个盘子,我们需要借助B,把A上的所有盘子都移动到C上,并且有两条规则:1. 大盘子不能在小盘子的上面2. 一次只能移动一个盘子原创 2023-04-24 15:34:06 · 248 阅读 · 0 评论 -
【C语言】程序环境和预处理
_FILE__ //进行编译的源文件 __LINE__ //文件当前的行号 __DATE__ //文件被编译的日期 __TIME__ //文件被编译的时间 __STDC__ //如果编译器遵循ANSI C,其值为1,否则未定义这些预定义符号都是语言内置的。# define MAX 1000 # define reg register //为 register这个关键字,创建一个简短的名字 # define do_forever for(;;原创 2023-04-07 17:48:23 · 84 阅读 · 5 评论 -
【C语言】文件操作
为什么使用文件我们前面学习结构体时,写了通讯录的程序,当通讯录运行起来的时候,可以给通讯录中增加、删除数据,此时数据是存放在内存中,当程序退出的时候,通讯录中的数据自然就不存在了,等下次运行通讯录程序的时候,数据又得重新录入,如果使用这样的通讯录就很难受。我们在想既然是通讯录就应该把信息记录下来,只有我们自己选择删除数据的时候,数据才不复存在。这就涉及到了数据持久化的问题,我们一般数据持久化的方法有,把数据存放在磁盘文件、存放到数据库等方式。原创 2023-04-01 19:34:27 · 70 阅读 · 2 评论 -
【C语言】自定义类型:结构体,位段、枚举,联合
本章主要是来介绍C语言中的自定义类型:结构体、位段、枚举、联合的介绍和使用有了结构体类型,那如何定义变量,其实很简单。定义的方法一班有两种,一种是在结构体的声明后面直接定义变量,如果要定义多个变量时,用逗号隔开;第二种是单独再定义变量,这与用int 类型来定义一个a变量并无差别。struct Stu //类型声明 {//名字 int age;//年龄 } s1;//初始化int data;} n1 = {10 , {//结构体嵌套初始化 struct Node n2 = {原创 2023-03-25 15:00:52 · 74 阅读 · 4 评论 -
【C语言】分支语句
本篇是讲述在C语言学习过程中我对于分支的一些理解和我们在平时写代码时容易犯的一些错误。C语言的语句可以分为以下五类:1. 表达式语句2. 函数调用语句3. 控制语句4. 复合语句5. 空语句控制语句用于控制程序的执行流程,以实现程序的各种结构方式(C语言支持三种结构:顺序结构、选择结构、循环结构),它们由特定的语句定义符组成,C语言有九种控制语句。可分成以下三类:1. 条件判断语句也叫分支语句:if语句、switch语句;原创 2023-01-11 18:41:16 · 371 阅读 · 4 评论 -
浮点数在内存中的存储
当我们看到这样一段代码,那么他输出的结果是什么呢?想必大部分人看到这个结果和我第一次是一样的,第一行与第四行和我心中的答案是一样的,可中间两行的结果是怎么得出的呢?num 和 *pFloat 在内存中明明是同一个数,为什么浮点数和整数的解读结果会差别这么大?这就不得不提及浮点数在内存中的存储规则了!原创 2023-02-21 15:58:50 · 153 阅读 · 0 评论 -
内存函数(memcpy、memmove、memcmp)的介绍使用或模拟实现
函数memcpy从source的位置开始向后复制num个字节的数据到destination的内存位置。这个函数在遇到 '\0' 的时候并不会停下来。如果source和destination有任何的重叠,复制的结果都是未定义的。一点注记:num是表示的是要复制的多少个字节的大小,而并非是元素的个数。例如:复制五个int类型的元素,那么num=4(int类型的大小)*5(元素个数)=20和memcpy的差别就是memmove函数处理的源内存块和目标内存块是可以重叠的。原创 2023-03-16 11:42:10 · 568 阅读 · 4 评论