C语言的系统性学习
文章平均质量分 96
理论和代码的实际结合
系统性的学习C语言
系统的篇章一般是万字起步
Jason_from_China
非心静无以事明,非心坚无以事破
展开
-
贪吃蛇项目(小白保姆级教程)
1:0)//控制面板的操作//隐藏光标信息//指定光标的位置//初始化界面//蛇的状态OK,//正常KILL_ESE,//退出KILL_WALL,//撞墙KILL_MYSELS//咬到自己//蛇的方向enum _DIRUP,//上DOWN,//下LEFT,//左RIGHT//右//创建节点int x;int y;//创建蛇的状态//方向,头节点,状态,食物,一个食物的分数,时间,得分情况//蛇的头节点//蛇的食物//蛇的状态//蛇的方向。原创 2024-05-06 23:00:50 · 1604 阅读 · 2 评论 -
双向链表-(增删减改)+双链表实现通讯录项目
双链表是线性表的链式存储结构的一种,它除了包含线性表所具有的数据元素外,每个数据元素还包含两个指针,分别指向前一个元素和后一个元素。这样,通过这两个指针,就可以很方便地访问双链表中的任何一个元素的前驱和后继。在双链表中,每个节点通常包含三个部分:1. 数据域:用于存储节点的数据。2. 左指针域:指向节点的前一个节点。3. 右指针域:指向节点的后一个节点。双链表的主要特点和优势如下:- 删除和插入操作更加高效,因为可以直接通过指针跳转到前一个或后一个节点,不需要像数组那样进行搬移操作。原创 2024-04-22 04:30:00 · 1536 阅读 · 0 评论 -
单链表(增删减改)+单链表实现通讯录项目+链表的专用题型
单链表是一种数据结构,它的数据元素在物理上不连续,但在逻辑上是连续的,通过指针链接实现数据元素的顺序。在单链表中,每个节点包含数据区和指针区,用于存放数据和指向下一个节点的地址。单链表的实现主要包括头插法、尾插法、头删、尾删、查找、插入、删除等操作。它广泛应用于企业常用的技术中,如排序、查找、插入、删除等操作。相较于顺序表,链表在内存开辟和元素插入删除方面具有优势,但其访问效率相较较低,需要从头节点开始,依序通过每个节点的指针到达下一个节点1279。单链表的创建。原创 2024-04-16 23:38:40 · 1622 阅读 · 0 评论 -
顺序表(增删减改)+通讯录项目(数据结构)+顺序表专用题型
顺序表本质就是数组 结构体初阶+进阶 系统化的学习-CSDN博客简单解释一下,就像大家去吃饭,然后左边是苍蝇馆子,右边是修饰过的苍蝇馆子,但是那个好看的苍蝇馆子一看,这不行啊,我这个和你的东西一样名字一样,我这个吸引不来客户,那我改个名字,叫米其林。就像顺序表和数组之间的区别。顺序表既是一个数据结构,也是C语言中可以使用的一种数据组织方式。作为数据结构,顺序表是一种抽象的数据类型,它指定了一种线性数据集合,其中的元素按照一定的顺序排列,并且可以通过索引来访问。顺序表在许多编程语言中都有实现,包括C语言。原创 2024-04-10 00:49:41 · 3509 阅读 · 8 评论 -
预定义详解
C语⾔设置了⼀些预定义符号,可以直接使⽤,预定义符号也是在预处理期间处理的。__FILE__ //进⾏编译的源⽂件__LINE__ //⽂件当前的⾏号__DATE__ //⽂件被编译的⽇期__TIME__ //⽂件被编译的时间__STDC__ //如果编译器遵循ANSI C,其值为1,否则未定义定义常量(这里 就要涉及我们经常说的宏定义)首先是预处理生成.i文件(在csdn编译速通里面我们会讲到)这里会进行替换,全部替换成常量在 i文件里面 可以 很好的说明。原创 2024-04-08 02:00:00 · 1622 阅读 · 0 评论 -
编译和链接(基础速通版)
就比如这个,这里是进行语义分析,分析出来是4 这个是整形+整形 本质是整形。查找的时候是按照大写去查找的,但是实际找到的时候是按照小写着找到的。生成目标文件的过程称之为编译,生成可执行程序的过程称之为链接。这里合并的时候 ,保留有效的,舍弃无效的,对符号表进行合并。链接解决的是一个项目多文件,多模块之间相互调用的问题。注释是给人看的,计算机是看不懂的 也不会进行读取的。局部变量的是没有创建的,所以是不在符号表里面的。符号表也是需要合并的,符号表也是需要合并成一份。合并完成之后,我们通过有效的地址找到文件。原创 2024-04-02 05:30:00 · 1576 阅读 · 0 评论 -
C语言-文件操作函数大全
fopen` 函数用于打开一个文件,并返回一个指向该文件的指针。如果打开文件失败,`fopen` 会返回 `NULL`。```c```参数:- `path`: 要打开的文件的路径。- `mode`: 文件的打开模式(例如:`"r"` 读取模式,`"w"` 写入模式,`"a"` 追加模式等)。如果成功,返回一个指向 `FILE` 对象的指针。如果失败,返回 `NULL`。`fclose` 函数用于关闭由 `fopen` 函数打开的文件。原创 2024-04-01 04:00:00 · 1698 阅读 · 1 评论 -
动态内存管理+柔性数组
动态内存是指在程序运行过程中可以被分配和释放的内存空间。这与静态内存分配相对,静态内存分配是在程序编译时就已经确定的内存空间,其大小在程序运行期间固定不变。在许多编程语言中,特别是在C语言中,动态内存管理是通过一系列标准库函数来实现的,如`malloc()`、`calloc()`、`realloc()`和`free()`。这些函数提供了在程序运行时请求和释放内存的能力。动态内存的分配通常发生在堆(Heap)区域,这是程序内存空间的一个部分,用于存储动态分配的内存。原创 2024-03-30 05:45:00 · 781 阅读 · 0 评论 -
结构体初阶+进阶 系统化的学习
结构体是一种用户自定义的数据类型,可以组合多个相关值成为一个单一类型。它是由一批数据组合而成的结构型数据,结构体可以包含多个不同类型的字段,如基本数据类型、其他结构体、枚举类型等。在Rust中,结构体有着重要的作用,可以创建更复杂的数据结构,并定义它们的行为。结构体使用struct关键字定义,如`struct Person { name: String, age: i32, }`。结构体实例的创建需要使用构造函数。结构体字段可以是可变的,也可以是不可变的,默认情况下,结构体字段不可变。原创 2024-03-27 03:30:00 · 1174 阅读 · 0 评论 -
数据在内存里面的存储
大小端(Big-Endian 和 Little-Endian)是指计算机系统中多字节数据类型的存储顺序。这种存储方式影响数据的读取和写入,特别是对于有符号整数和浮点数的字节顺序。1. 大端- 在大端字节存储方式中,数据的高位字节(Most Significant Byte,MSB)存储在内存的低地址端,而低位字节(Least Significant Byte,LSB)存储在内存的高地址端。原创 2024-03-25 07:00:00 · 1925 阅读 · 6 评论 -
C语言-内存操作函数
/void类型是不能进行计算的 只能进行强制类型转化 要转化成char*类型的原因是 一方面这个是指针 另一方面这个是按照字节大小进行计算拷贝的//或者写成这样 这里强制类型转化的情况下这样的话可以++while (num--)//这里是每次计算的时候减少一个字节 所以会直到为0 的时候自己跳出循环//进行强制类型转化的原因是因为这里是void类型 void类型是无法参与计算的 所以要进行强制类型转化//这里不能和拷贝库函数一样直接++ 因为void是无法参与计算的。原创 2024-03-20 06:30:00 · 1791 阅读 · 0 评论 -
C语言-字符函数和字符串函数
/islower的使用//在C语言中,可以使用islower函数来判断一个字符是否为小写字母。// islower函数是ctype.h头文件中的一个函数,它的返回值是一个非零值(通常是1),表示字符是小写字母;// 返回值为0表示字符不是小写字母。// 大写字母A的ASCII码值比小写字母a的ASCII码值大32。int main()//首先我们这里先模拟判断和转化的条件都是什么int a = 0;原创 2024-03-18 07:00:00 · 1224 阅读 · 0 评论 -
指针篇章-(5)+最终思维导图
意思就是,在计算机编译环境里面,当计算机编译环境是32位的时候此时地址的大小也就是4个字节当计算机编译环境是64位的时候,此时地址的大小也就是8个字节。原创 2024-03-13 06:00:00 · 1209 阅读 · 0 评论 -
指针篇章-(4)+qsort函数的模拟
qsort函数的使用和深入了解回调函数的使用指针的深入理解原创 2024-03-12 06:00:00 · 1888 阅读 · 0 评论 -
指针篇章(3)-(指针之间的区别)
数据类型> *[];其中,表示指针所指向的数据类型,是数组的名称,表示数组的大小。指针数组可以存储多个指针,每个指针可以指向不同的内存地址。这使得指针数组非常灵活,可以用于存储不同类型的数据或者不同对象的地址。这个指针数组可以存储5个整型指针。每个元素都可以指向一个整型变量或者整型数组。使用指针数组时,可以通过索引来访问和操作每个指针元素。例如,可以通过ptrArray来访问第一个指针元素,并通过*ptrArray来访问该指针所指向的值。原创 2024-03-11 05:30:00 · 2259 阅读 · 0 评论 -
指针篇章-(2)-(一级指针和二级指针之间的理解)
丛数值的角度看,丛地址的角度看,代码举例分析、下标引用操作符【】术语。 举例、-级指针—什么是一级指针?实例讲解、实参和形参术的解释。开房间举例,举例:增加的注释维数组传参了-什么是数组传参?数组传参的举例、冒泡排序。图解for循环详解,for循环画图详解,代码:二级指针、指针模拟二维数组字符指变量.结构体:结构体传参原创 2024-03-05 14:47:43 · 907 阅读 · 2 评论 -
指针篇章-(1)-(指针基础知识的介绍)
1内存和地址 2.指针变量和地址3.指针变量类型的意义4.const修饰指针5.指针运算6.野指针7.assert断言8.指针的使用和传址调用变量是什么,指针变量的举例,关于指针变量大小,不同的类型之间转化,原创 2024-03-02 05:00:00 · 924 阅读 · 1 评论 -
C语言递归篇章
【代码】C语言递归篇章。原创 2024-01-30 05:30:00 · 1105 阅读 · 1 评论 -
C语言操作符篇章
之前我们讲解了原码反码补码,这里直接上代码 计算机计算的过程是正数的原反补一样,负数需要符号位取反,然后除符号位全部取反+1,得到补码进行计算。这里需要知道的是,计算机进行计算转换的时候是把十进制的数值转换成二进制,然后把二进制计算成补码然后进行计算。右移操作符和左移操作符基本上一样,左移操作符是向左移动补0,右移操作符是向右移动补符号位。并且在讲解操作符的时候会重点对难点进行讲解,也就是算数操作符和逻辑操作符。正数的计算是原码反码补码是一样的。负数的原码反码不一样是有计算过程的。向右移动补的是算数位。原创 2024-01-28 05:00:00 · 1402 阅读 · 4 评论 -
C语言循环篇章
【代码】C语言里面关于循环(if while do-while switch for之间的区别。原创 2023-12-03 22:55:06 · 1379 阅读 · 0 评论