C语言学习之旅
文章平均质量分 91
atlanteep
提桶跑去当码农
展开
-
C语言·贪吃蛇游戏(下)
本节实现了用C语言编写贪吃蛇游戏原创 2024-02-01 23:16:43 · 5062 阅读 · 0 评论 -
C语言·贪吃蛇游戏(上)
本节讲解了写贪吃蛇游戏前的一些必要知识,如Win32 API,以及其中的控制台的各种操作函数,光标的操作函数,还有本地化是什么,我们该怎么用原创 2024-02-01 00:16:16 · 697 阅读 · 0 评论 -
C语言·数组
本章讲解了一维数组和二维数组数组的创建原理和使用方法,和其在内存中的存储方案。sizeof关键字的用法。滚动打印和二分查找的练习。原创 2023-10-25 22:23:39 · 45 阅读 · 1 评论 -
C语言·预处理详解
本节讲解了预定义符号的含义。#define定义常量或定义宏的用法和注意事项,关键是其暴力替换的原理可能产生的问题以及解决办法。在定义宏中#和##的意义。#undef取消宏定义。命令行定义不确定大小的参数。条件编译的用法。头文件不同包含方式的意义原理,以及头文件重复包含的危害和解决办法原创 2024-01-18 14:03:05 · 2053 阅读 · 0 评论 -
C语言·编译和链接
本节讲解了程序是如何通过编译和链接从计算机不认识,不能执行的源文件,变成计算机认识并且可以执行的二进制可执行文件的原创 2024-01-17 12:17:43 · 972 阅读 · 1 评论 -
C语言·文件操作
本节介绍了文件的用处,如何用文件指针打开和关闭文件,流的读写函数fgetc fputc fgets fputs fscanf fprintf fread fwrite,和字符串的的格式化输入输出函数sscanf sprintf控制文件指针实现随机读写的函数fseek ftell rewind,文件结束相关函数feof ferror,文件缓冲区的概念原创 2023-12-13 23:55:10 · 1035 阅读 · 0 评论 -
C语言·动态内存管理
本节介绍了动态内存分配的操作函数 malloc calloc realloc free,动态内存的一些常见错误,柔性数组的声明和使用,还有c/c++中程序内存区域的划分原创 2023-12-09 13:50:07 · 820 阅读 · 0 评论 -
C语言·自定义类型:联合和枚举
本节讲解了联合体的声明,其内存是如何分配的,联合体相较于结构体的优势是什么,并用一个商店的礼品清单的例子进行展现,巧妙运用联合体展示某个字节中的内容。枚举的声明,优点和实际使用展示原创 2023-12-02 20:36:04 · 798 阅读 · 0 评论 -
C语言·自定义类型:结构体
本节讲解了结构体的特殊声明、结构体的自引用(链表)、结构体在内存中的对齐规则、通过offsetof宏获取结构体成员的偏移量、通过#pragma修改默认对齐数、结构体传参、位段原创 2023-12-01 23:06:31 · 960 阅读 · 1 评论 -
C语言·数据在内存中的存储
本节介绍了整数和浮点数在内存中是如何存储的,以及大小端字节序和浮点数的比较等原创 2023-11-30 17:00:47 · 853 阅读 · 0 评论 -
C语言·内存函数
本节讲解了memcpy memmove memset memcmp 函数的意义和使用原创 2023-11-26 16:30:38 · 905 阅读 · 1 评论 -
C语言·字符函数和字符串函数
本节讲解了有字符和字符串的各种函数,包含一系列字符分类和转换函数。各种字符串函数strlen strcpy strcat strcmp strncpy strncat strncmp strstr strtok strerror perror原创 2023-11-25 18:48:18 · 890 阅读 · 0 评论 -
深入理解指针(五)
本节的内容主要是关于指针的大量练习题。原创 2023-11-22 22:35:33 · 73 阅读 · 1 评论 -
深入理解指针(四)
本节讲解了回调函数是什么,qsort库函数的使用原创 2023-11-18 19:57:12 · 75 阅读 · 1 评论 -
C语言·深入理解指针(三)
通过已知的知识,我们知道字符变量的地址可以这么存储当然,还有另一种书写方式。原创 2023-11-17 16:34:42 · 42 阅读 · 0 评论 -
C语言·深入理解指针(二)
数组名就是首元素地址,当然,有两个例外1. sizeof() 中的数组名指的是整个数组,计算的是整个数组的大小,单位是字节2. &数组名 ,这里的数组名表示整个数组,取出的是整个数组的地址除此之外,任何地方使用数组名,数组名都表示数组首元素地址经过观察上面一段代码打印出来的结果显示,3个地址打印出来是相同的,那 arr 和 &arr 的区别是怎么体现的?事实上,当我们将 地址+1 后就会发现 arr+1跳过了4个字节 而 &arr+1跳过了20个字节,也就是跳过了整个数组。原创 2023-11-14 23:09:11 · 44 阅读 · 1 评论 -
C语言·分支和循环(下)(猜数字游戏)
本节的目的在于用之前学到的选择和循环语句为基础,写出一个猜数字游戏。原创 2023-10-22 22:16:27 · 60 阅读 · 1 评论 -
C语言·深入理解指针(一)
我们知道,CUP(中央处理器)在计算的时候是从内存中提取需要的数据,计算完成后再将结果放回内存当中,那这些内存空间是如何高效管理的呢?一个bit(比特位)可以存放一个二进制位,一个byte(字节)可以存放8个bit每个内存单元可以类比成一个8人制宿舍,每个比特位相当于一个铺位每个内存单元都有一个编号(这个编号就相当于宿舍门牌号),有了这个编号,CPU就可以快速找到一块内存空间生活中我们把门牌号叫做地址,计算机中将内存单元的编号也称为地址。C语言中给地址起了一个新名字:指针。原创 2023-11-11 23:32:41 · 44 阅读 · 1 评论 -
C语言·操作符详解
即使有雷操作符的优先级和结合性,写出的代码有时也不能拥有唯一的计算路径,那这个表达式就是有风险的,建议不要写出特别复杂的表达式,尤其在表示中用到自增和自减的时候要格外注意。原创 2023-11-08 21:50:48 · 52 阅读 · 1 评论 -
C语言·函数递归
递归是解决问题的一种方法,在C语言中,函数递归就是自己调用自己史上最简单的函数递归在这段代码中函数main()调用了自己,形成了递归,结果是无限打印了 hehe ,当然如果你尝试运行一下的话会发现程序跑着跑着崩掉了,这是因为这段递归编辑的不合理,导致了栈溢出,从而导致程序崩溃。如何解决这个问题请往下看。原创 2023-11-04 21:14:00 · 47 阅读 · 1 评论 -
VS实用调试技巧
调试就是把错误bug消灭的操作,当然当程序出现bug时我们要狠心的承认自己的编写的程序是不完美的,然后潜下心来找到问题所在,将它完善。原创 2023-11-02 22:15:20 · 35 阅读 · 0 评论 -
函数·扫雷游戏
首先,扫雷游戏需要一个棋盘存放雷,这个棋盘用数组来定义,在有雷的位置上放1,没有的位置放0,但是在判断周围是否有雷的时候会在棋盘上展示了雷的个数,这时很有可能就产生了歧义,展示出来的数字如果是1的话那下次判断的时候会不会将这里识别成雷,因此我要创建两个棋盘,一个用于存放雷的信息,一个用于展示雷。第二,为了防止如下图出现的蓝色区域数组越界访问,我可以将棋盘的上下左右都延伸出去,变成绿色棋盘的大小,两个棋盘都如此,方便同时操作它们。原创 2023-10-30 19:33:58 · 62 阅读 · 0 评论 -
C语言·函数
ret_type 是函数返回类型fun_name 是函数名括号中是形参{}括起来的是函数体之前的代码中我都是将函数的定义放在主函数的前面,而这次的代码我将函数放在主函数的后面,这样的话就需要在主函数之前声明这个函数,告诉编译器我的程序中有这个函数。注意:编译器在编译的时候是从上往下扫描的,如果在调用函数之前没有定义的话会报警告C语言中要求函数要先声明再使用函数的定义是一种更强大的声明,所以把函数定义在要使用它之前就不用再特别声明了。原创 2023-10-29 20:31:16 · 42 阅读 · 1 评论 -
分支和循环(上)
if语句的语法形式如下表达式成立(为真),则语句执行,表达式不成立(为假),则语句不执行.(C语言中0为假,语句不执行,非0为真,语句执行)原创 2023-10-22 20:40:04 · 46 阅读 · 1 评论 -
C语言数据类型和变量
C语言中使用整形类型来描述整数,使用字符型类型来描述字符,使用浮点型类来描述小数。原创 2023-10-15 18:01:46 · 46 阅读 · 0 评论 -
C语言的常见概念
C语言中有一批拥有特殊含义的单词,例如 if int unsighed,这个程序中用到的关键字是return。因为关键字是拥有特殊意义的,因此我在自己创建标识符的时候是不能与关键字重复的,常见的关键字有32个。关键字查询网站C 关键词 - cppreference.com。原创 2023-10-11 20:48:42 · 51 阅读 · 0 评论