
C语言
文章平均质量分 90
C语言相关知识
小陈️️
知不足而奋进 望远山而前行
展开
-
【C语言】字符函数和字符串函数--超详解
在编程的过程中,我们经常要处理字符和字符串,为了⽅便操作字符和字符串,C语⾔标准库中提供了 ⼀系列库函数,接下来我们就学习⼀下这些函数。原创 2024-05-02 21:22:00 · 2113 阅读 · 6 评论 -
【C语言】函数递归(超详解)
递归是学习C语⾔函数绕不开的⼀个话题,那什么是递归呢?递归其实是⼀种解决问题的⽅法,在C语⾔中,递归就是函数⾃⼰调⽤⾃⼰。上述就是⼀个简单的递归程序,只不过上⾯的递归只是为了演⽰递归的基本形式,不是为了解决问 题,代码最终也会陷⼊死递归,导致栈溢出(Stack overflow)。原创 2024-05-29 23:02:56 · 1020 阅读 · 0 评论 -
【C语言 】自定义数据类型(二)
像结构体⼀样,联合体也是由⼀个或者多个成员构成,这些成员可以不同的类型。但是编译器只为最⼤的成员分配⾜够的内存空间。联合体的特点是所有成员共⽤同⼀块内存空间。所 以联合体也叫:共⽤体给联合体其中⼀个成员赋值,其他成员的值也跟着变化。运行结果:为什么是4呢?原创 2024-05-01 16:41:24 · 764 阅读 · 2 评论 -
【C语言】操作符超详解
/代码1:变量的定义int x;int y;}p1;//声明类型的同时定义变量p1//定义结构体变量p2//代码2:初始化。struct Stu //类型声明//名字int age;//年龄//初始化//指定顺序初始化//代码3int data;//结构体嵌套初始化//结构体嵌套初始化。原创 2024-04-29 00:02:51 · 748 阅读 · 0 评论 -
【C语言】数据在内存中的存储
其实超过⼀个字节的数据在内存中存储的时候,就有存储顺序的问题,按照不同的存储顺序,我们分 为⼤端字节序存储和⼩端字节序存储,下⾯是具体的概念:⼤端(存储)模式:是指数据的低位字节内容保存在内存的⾼地址处,⽽数据的⾼位字节内容,保存在内存的低地址处。⼩端(存储)模式:是指数据的低位字节内容保存在内存的低地址处,⽽数据的⾼位字节内容,保存在内存的⾼地址处。VS上采用的是小段存储上述概念需要记住,⽅便分辨⼤⼩端。原创 2024-05-02 14:57:50 · 672 阅读 · 1 评论 -
【C语言】实现贪吃蛇--项目实践(超详细)
本次实现贪吃蛇会使⽤到的⼀些Win32 API知识,接下来我们就学习⼀下。原创 2024-05-23 13:21:00 · 3542 阅读 · 8 评论 -
【C】语⾔内存函数--超详解
函数memcpy从source的位置开始向后复制num个字节的数据到destination指向的内存位置。这个函数在遇到 '\0' 的时候并不会停下来。如果source和destination有任何的重叠,复制的结果都是未定义的。针对内存进行拷贝(头文件<string.h>)对于重叠的内存,交给memmove来处理。原创 2024-05-03 16:24:32 · 392 阅读 · 0 评论 -
C语言预处理详解
基本语法:#define reg register //为 register这个关键字,创建⼀个简短的名字;) //⽤更形象的符号来替换⼀种实现case //在写case语句的时候⾃动把 break写上。// 如果定义的 stuff过⻓,可以分成⼏⾏写,除了最后⼀⾏外,每⾏的后⾯都加⼀个反斜杠(续⾏符)。思考:在define定义标识符的时候,要不要在最后加上;?建议不要加上;这样容易导致问题。max = MAX;原创 2024-04-27 15:53:41 · 769 阅读 · 0 评论 -
冒泡排序和qsort函数
如上图所示,我们先把第一个数字和其相邻的数字进行比较,大则交换,小则不交换(停止),这样对一个数字进行以上操作称为一趟冒泡排序,所有的数字进行以上操作至少要9趟冒泡排序。qsort是一个库函数用来排序数据,底层使用的是快速排序的方式,qsort函数可以排序任意类型数据。举个例子:如果p1 < p2返回小于0的数 ,p1==p2返回0,p1>p2返回大于0的数。冒泡排序的思想:两两相邻的元素进行比较,如果不满足顺序就交换,满足顺序就找下一对。第四个参数是一个函数指针,指向的就是两个元素的比较函数。原创 2024-04-22 00:23:53 · 329 阅读 · 0 评论 -
C语言——指针超详细讲解
指针就是内存地址内存地址就是指针,或者说指针是用来存放内存地址的。这意味着当我们有一个变量的地址时,我们可以将这个地址存储在一个指针变量中,我们口头说的指针其实指的是指针变量,指针变量就是一个存放地址的变量。原创 2024-04-21 18:11:35 · 1583 阅读 · 2 评论 -
C语言动态内存管理
通过以上例子我们可以总结一下几点:1.在声明变量时,内存空间已经开辟好了,并且开辟的是固定值。2.在声明数组的时候,必须指定数组长度以及数组的元素个数,并且以后不能改变数组的长度。那么这样可能会造成内存浪费,于是就有了动态内存管理,让程序员自己来动态内存的申请空间,要多大空间 就申请多大空间,这样就比较灵活了。原创 2024-04-23 23:03:54 · 705 阅读 · 1 评论 -
C语言自定义数据类型(一)
结构是⼀些值的集合,这些值称为成员变量。结构的每个成员可以是不同类型的变量,如: 标量、数组、指针,甚⾄是其他结构体。声明结构体的关键字是struct//名字int age;//年龄//性别//分号要记得加上上述代码定义了一个student结构体的类型(名字可以自定义),结构体的类型可以用不同的类型,该类型包含了三个成员变量:name、age、和sex。int x;int y;char a[10];}p1;//声明类型的同时定义变量p1//定义结构体变量p2int main()原创 2024-03-28 20:49:19 · 950 阅读 · 3 评论 -
C语言编译和链接
在ANSI C的任何⼀种实现中,存在两个不同的环境。第1种是翻译环境,在这个环境中源代码被转换为可执⾏的机器指令(⼆进制指令)第2种是执⾏环境,它⽤于实际执⾏代码。原创 2024-04-24 20:58:24 · 673 阅读 · 0 评论 -
C语言⽂件操作超详解易懂
程序⽂件包括源程序⽂件(后缀为.c),⽬标⽂件(windows环境后缀为.obj),可执⾏程序(windows 环境后缀为.exe)。原创 2024-04-03 20:25:55 · 931 阅读 · 4 评论