C语言知识
文章平均质量分 85
介绍C语言相关知识
阿梦Anmory
想要触及光芒,却发现影子越来越长
展开
-
[C语言知识]return和exit到底有什么区别?
我们共同进步本系列持续更新,关注我,带你完全理解C语言下期再见。原创 2024-05-13 21:24:27 · 496 阅读 · 12 评论 -
C语言文件操作
在程序设计中,我们谈的文件有两种,一种是程序文件,另一种是数据文件。原创 2024-03-27 19:54:15 · 5905 阅读 · 2 评论 -
数据在内存中的存储
本文的核心目标在于深度剖析数据在内存中的储存机制,详尽阐述整数与浮点数的内在编码原理,通过对这些基础知识的透彻解读,读者不仅能洞悉计算机内存运作的底层逻辑,更能由此深化对计算机系统核心工作原理的认知,从而全面提升在相关领域内的理论素养和技术能力。通过这一探讨,我们将揭示数据在内存中是如何以二进制形式被有序且高效地组织与存储的,进而展示整数如何依据补码、原码及反码原理进行表示,以及浮点数如何借助IEEE 754标准实施精细化的指数与尾数相结合的存储格式。原创 2024-03-16 20:10:14 · 7934 阅读 · 2 评论 -
C语言字符函数和字符串函数详解
本篇文章分享了C语言的字符函数和字符串函数的使用方法以及如何通过自己的程序来模拟实现这些函数,包括大小写的转换,strlen,strcpy,strcat,strcmp,strncpy,strncat,strncmp,strstr,strtok,strerror等,详细地讲述了字符函数和字符串函数,对于刚学习C语言的小伙伴来说非常友好。原创 2024-03-16 14:48:00 · 8044 阅读 · 5 评论 -
函数栈帧的创建和销毁
大家好,我是Anmory,很高兴与大家一同探讨有关函数栈帧的底层逻辑。无论您使用的是何种编程语言,今天的话题都具有普适性,因为它触及到计算机程序运行机制的本质层面,对于深入理解函数调用机制将大有裨益。在日常编写函数的过程中,我们或许会遇到诸多疑问:局部变量究竟是如何在内存中被创建和管理的?为什么未经初始化的局部变量其内容往往呈现随机状态?函数调用时,参数是以何种方式传递的?传递参数遵循什么样的顺序规则?函数形参与实参的具体实例化过程又是怎样的?函数执行完毕后,其返回值是如何安全地回传至调用者处的?原创 2024-01-01 17:25:04 · 8412 阅读 · 4 评论 -
C语言指针最全详解
在日常生活中,当我们置身于一个庞大的小区时,为了便于定位和寻访朋友的住所,我们会为每个房间赋予一个独一无二的编号,如101、201或304等。这些数字就像是房间在小区内的坐标,让来访者能够迅速找到目标位置。同样,在计算机内部的世界里,内存就如同一座座存放数据的“房间”,也需要一种高效的方式来管理和定位它们。当计算机的核心——CPU需要处理数据时,它会在浩瀚的内存空间中进行读取和存储操作。然而,面对如此海量且连续分布的数据单元,逐一查找显然是低效而不可行的。原创 2024-03-09 10:43:48 · 8837 阅读 · 8 评论 -
C语言内存操作函数详解
memcpy函数的原型声明如下:这里进行一下详细的解读:1. `void * destination`:这是一个指向目标内存区域的指针,即将接收拷贝内容的地址。2. `const void * source`:这是一个指向源内存区域的常量指针,即需要被拷贝内容的起始地址。3. `size_t num`:这是一个无符号整型变量,表示要拷贝的字节数。这意味着无论源内存区域中存储的是何种类型的数据,都将以字节为单位进行拷贝。原创 2024-03-17 14:46:56 · 9100 阅读 · 3 评论 -
C语言预处理
C语言里的预处理,简单来说就是在真正开始编译你的源代码之前,有个特殊的“预备队”先上场,帮你把原始代码整理得更规整、更适应编译器的要求,同时也让你编程时能更方便、更灵活。这个“预备队”就是预处理器,它干的活儿是在编译流程的最前端单独进行的,比检查语法、理解代码含义那些步骤还要早。在编程实践中,我们时常会遇到一些常数,它们如同程序的脉络一般,贯穿于各个角落,对算法逻辑、数据结构乃至系统行为产生深远影响。原创 2024-04-02 15:20:12 · 5061 阅读 · 5 评论 -
C语言自定义类型——结构体详解
结构体是一种数据类型,它可以组合多个值作为成员变量。每个成员变量可以是不同类型的变量,例如标量(单个值)、数组、指针,甚至可以是其他结构体。结构体可以看作是一个容器,用于存储相关数据的集合。每个成员变量可以有自己的数据类型和名称,代表不同的信息。例如,我们可以创建一个名为"学生"的结构体,其中包含姓名(字符串类型)、年龄(整数类型)、成绩(浮点数类型)等成员变量。这样,我们就可以将学生的姓名、年龄和成绩作为一个整体进行管理。在结构体中,每个成员变量可以具有不同的数据类型,这使得结构体非常灵活。原创 2024-03-20 10:35:01 · 8305 阅读 · 3 评论 -
C语言写流星雨代码
怎么样,这个效果不错吧,下面我们就来一起实现这个炫酷的流星雨动画效果吧。原创 2024-04-09 07:47:47 · 2874 阅读 · 4 评论 -
如何用C语言实现简单的扫雷游戏?
如果不满足这个条件则提示坐标非法,如果满足,进入子循环,需要判断这个坐标是不是被排查过,即如果该坐标的值为字符*代表没有被排查,繁殖则为排查过,若没有被排查,进入子循环,判断该坐标是否为雷(即在mine数组中是否为字符1),若是,则提示被炸死,打印mine数组显示雷的位置并跳出循环,若不是,则计算周围雷的个数,用该处的地雷数加上字符0的ASCII值即可判断。在这里我们定义一个函数来初始化,形参中需要有一个char set变量,来自定义初始化界面的元素,否则就要定义两个函数来初始化界面,这样就会让代码冗余。原创 2023-12-12 08:10:27 · 7448 阅读 · 0 评论 -
C语言动态内存管理
也许你从来没有听说过柔性数组(flexible array)这个概念,但是它确实是存在的。C99 中,结构中的最后⼀个元素允许是未知大小的数组,这就叫做『柔性数组』成员。int a[];数组a就是一个柔性数组,因为我们不知道数组a的具体大小是多少C/C++程序内存分配的⼏个区域:1. 栈区(stack):在执⾏函数时,函数内局部变量的存储单元都可以在栈上创建,函数执⾏结束时 这些存储单元⾃动被释放。原创 2024-03-24 15:18:36 · 6662 阅读 · 3 评论 -
C语言的分支与循环
注意此语句需要有break函数,否则会连着下面的case条件一起执行,break指跳出。else只与离他最近的if语句关联,若要与远处的if关联,则需要用大括号表示关系。当条件满足时,回到循环开头执行下一次循环,忽略continue下面的语句不执行。此循环无论条件是否为真都先执行一次do里面的语句,直到判断条件为假跳出循环。跳出当前函数,与if一起用,当条件满足if中的条件时跳出执行。当括号里的条件为真时执行,直到条件为假停止执行。for(初始化,判断,调整)else if(条件)}while(条件)原创 2023-11-30 07:30:12 · 7757 阅读 · 2 评论