![](https://img-blog.csdnimg.cn/20190927151132530.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
C语言
文章平均质量分 88
包括C语言基础与进阶的知识,讲解加实例~
…狂奔的蜗牛~
孤独成就算法
展开
-
C语言指针全解
在计算机科学中,指针(Pointer)是编程语言中的一个对象,利用地址,它的值直接指向(points to)存在电脑存储器中另一个地方的值。由于通过地址能找到所需的内存单元,可以说地址指向该内存单元。因此,将地址形象化的称为“指针”。意思是通过它能找到以它为地址的内存单元。原创 2022-12-31 15:08:19 · 359 阅读 · 5 评论 -
结构体大小的计算(结构体内存对齐)
学习过C语言的我们知道,整型变量有自己的大小,浮点型变量有自己的大小,数组也有自己的大小,那么结构体有没有自己的大小呢?回答是肯定的,结构体也有自己的大小。原创 2022-07-20 09:05:48 · 3249 阅读 · 4 评论 -
何为整型提升(实例)
C的整型算术运算总是至少以缺省整型类型的精度来进行的。为了获得这个精度,表达式中的字符和短整型操作数在使用之前被转换为普通整型,这种转换称为整型提升。表达式的整型运算要在CPU的相应运算器件内执行,CPU内整型运算器(ALU)的操作数的字节长度一般就是int的字节长度,同时也是CPU的通用寄存器的长度。因此,即使两个char类型的相加,在CPU执行时实际上也要先转换为CPU内整型操作数的标准长度。......原创 2022-07-19 22:43:22 · 283 阅读 · 0 评论 -
【C语言进阶】深度剖析数据在内存中的存储
本次主要以整型和浮点型在内存中的存储进行分析讲解。希望能对各位小伙伴有所帮助!原创 2021-07-18 16:17:22 · 316 阅读 · 3 评论 -
【C语言】小陷阱-死循环(栈与数组)
前言在C语言的学习过程中,我们有时会遇到同样的代码在不同的开发环境下调试的结果会有差异甚至是报错,这是因为不同的编译器支持的标准可能不同,或者配置不同或者有的更智能。今天分享一个与栈和数组有关的小陷阱,通过结果与分析,让大家明白学编程除了有优秀的算法逻辑和数学思维外,也要对专业知识有深层次的解读。一 问题在VS开发环境调试下面的代码,进行程序死循环的解释代码:int main(){int i = 0;int arr[] = {1,2,3,4,5,6,7,8,9,10};for(i=0原创 2021-07-18 17:46:38 · 191 阅读 · 0 评论 -
【内存操作函数】(memcpy,memmove,memcmp,memset)
内存操作函数转载 2022-03-02 16:18:04 · 175 阅读 · 0 评论 -
【str家族】如何使用处理字符和字符串的库函数
C语言中对字符和字符串的处理很是频繁,但是C语言本身是没有字符串类型的,字符串通常放在常量字符串 中或者 字符数组 中。但比较友好的是C语言有处理字符和字符串的一些库函数,方便我们对字符和字符串进行一些操作。 所以本节我会重点介绍处理字符和字符串的一些常用库函数,让大家学会使用,并且了解它们的实现原理和一些注意事项。原创 2022-03-01 18:32:03 · 366 阅读 · 10 评论 -
浅谈浮点数的大小比较
《深入理解计算机系统》中这样说过,浮点数普遍的作为实数运算的近似值的计算,是很有用的。这里说的是实数的近似值的计算,所以浮点数在计算机中其实是一种不精确的表示。它存在舍入误差。IEEE浮点标准用符号,尾数和阶码将浮点数的位表示划分为三个字段,单精度为32位,双精度为64位,因为表示方法限制了浮点数的范围和精度,浮点运算只能近似的表示实数运算。而 == 表示的是在计算机中的内存表示完全一样,因此使用 == 来表示两个浮点数的相等就会出现问题。原创 2021-08-03 18:14:14 · 6328 阅读 · 4 评论 -
【C语言进阶】文件操作(最详细介绍分析+配图)
一、文件是什么?为什么要用文件?1.1 程序文件1.2 数据文件1.3 文件名二、文件的打开和关闭2.1 文件指针2.2 文件的打开和关闭三 文件的顺序读写eg1: fputceg2: fgetceg3: fputseg4: fgetseg5: fprintfeg6: fscanfeg7: fwriteeg8: freadeg9: sprintf 和 sscanf四 文件的随机读写4.1 fseek1.SEEK_CUR2.SEEK_END3.SEEK_SET4.2原创 2021-07-24 19:29:55 · 294 阅读 · 6 评论 -
【C语言进阶】动态内存经典笔试题
本文作者:小小白的崛起之路更新日期: 2021.7.21本文声明: 由于小小白水平有限,内容难免有错误和不准确之处,望读者批评指正!动态内存管理相关知识链接:小小白关于动态内存知识的总结题目1:void GetMemory(char *p){p = (char *)malloc(100);}void Test(void){char *str = NULL;GetMemory(str);strcpy(str, "hello world");printf(str);}int m.原创 2021-07-21 15:25:34 · 227 阅读 · 1 评论 -
【C语言进阶】动态内存管理(详细介绍)
文章目录前言一 为什么存在动态内存分配二 动态内存分配的区域三 动态内存函数的介绍3.1 malloc和free例子:问题:代码最后一步,释放完成后有必要将指针置空吗?3.2 calloc3.3 realloc四 常见的动态内存错误4.1 对NULL指针的解引用操作4.2 对动态开辟空间的越界访问4.3 对非动态开辟内存使用free释放4.4 使用free释放一块动态开辟内存的一部分4.5 对同一块动态内存多次释放4.5 动态开辟内存忘记释放(内存泄漏)2.读入数据总结前言C语言中提供了很多数据原创 2021-07-20 12:58:26 · 493 阅读 · 8 评论