
C语言
文章平均质量分 80
C语言相关知识
ZH-Won
Practice Makes Perfect.
展开
-
整数和浮点数在内存中的存储详解(原码、反码、补码,大小端字节序,浮点数的存取)
整数的二进制表示方法有三种,即原码、反码、补码。三种表示方法均有符号位和数值位两部分,数值位的最高位被当作符号位,其中0表示“正”,1表示“负”,剩余的位则为数值位。对于正整数,它的原码、反码、补码都相同。原创 2024-05-20 13:29:15 · 1108 阅读 · 26 评论 -
C语言:指针(一)
CPU(中央处理器)在处理数据的时候,需要的数据是在内存中读取的,处理后的数据也会放回内存中,那么这些内存空间是如何进行高效管理的呢?事实上,内存被划分为一个个的内存单元(对应这一个寝室),每个单元的大小取一个字节。原创 2024-03-02 17:39:29 · 1071 阅读 · 30 评论 -
C/C++内存管理及内存泄漏详解
栈区(stack):在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。栈区主要存放运行函数而分配的局部变量、函数参数、返回数据、返回地址等。原创 2024-03-02 17:28:41 · 1221 阅读 · 2 评论 -
【C语言】文件及文件操作详解(fseek,ftell,rwind)
如果没有文件,我们写的程序的数据是存储在电脑的内存中,如果程序退出,内存回收,数据就丢失了,等再次运行程序,是看不到上次程序的数据的,如果要将数据进行持久化的保存,我们可以使用文件。原创 2024-03-02 14:53:59 · 1350 阅读 · 4 评论 -
C语言翻译环境:预编译+编译+汇编+链接详解
在ANSI C的任何⼀种实现中,存在两个不同的环境。第1种是翻译环境,在这个环境中源代码被转换为可执行的机器指令。第2种是运行环境,它用于实际执行代码。原创 2024-02-22 18:46:46 · 1571 阅读 · 22 评论 -
【C语言】探索数据结构:单链表和双链表
链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的原创 2024-01-31 13:07:02 · 1064 阅读 · 15 评论 -
按位逻辑运算符
要理解按位逻辑运算符,首先要了解计算机是如何存放数值的。我们平常写出来的十进制数字转化为二进制数,就是原码,而原码的最高位是符号位,如,1的原码是00000000000000000000000000000001,其中最高位的0表示正数,若为1则表示负数。计算机在存储数值时,则存放的是补码。要得到补码就需要得到反码,反码加1即可得到补码。原创 2023-08-18 13:58:10 · 118 阅读 · 2 评论 -
C语言:输出水仙花数
我本人在实际操作中犯了一些小错误,每次得到的sum的值都是前面几次循环的总和,导致只能输出0和1。在经过一番调试之后,发现了这个错误,并及时改正得到正确的结果。由此可见,调试对于我们发现错误是多么重要的一个环节。另外,不知该程序是否为最优,如有可以优化的环节,希望各位同仁可以指出,以便我及时更正优化。原创 2023-08-07 12:57:50 · 1526 阅读 · 1 评论 -
【C语言】自定义类型:结构体(结构体的定义、内存对齐、访问方式、结构体传参)
4.如果嵌套了结构体的情况,嵌套结构体成员对齐到自己的成员中最大对齐数的整数倍处, 结构体的整体大小就是所有最大对齐数(含嵌套结构体中成员的对齐数)的整数倍。如果传递⼀个结构体对象的时候,结构体过大,参数压栈的的系统开销比较大,所以会导致性能的下 降。通过分析,我们可以发现这样的代码其实是错误的,因为一个结构体中再包含一个同类型的结构体变量会使得结构体变量的大小无穷大,很明显是不合理的。事实上,两个结构体的内容是一模一样的,但是两个结构体的大小却是不同的。: 结构体传参的时候,要传结构体的地址。原创 2023-09-27 00:25:24 · 139 阅读 · 8 评论 -
C语言:猜数字游戏
要想完成猜数字游戏,首先得生成随机数字。原创 2023-09-28 22:18:45 · 101 阅读 · 3 评论 -
C语言:字符函数和字符串函数
来记录程序的当前错误码,只不过程序启动的时候errno是0,表⽰没有错误,当我们在使⽤标准库中的函数的时候发⽣了某种错误,就会讲对应 的错误码,存放在errno中,⽽⼀个错误码的数字是整数很难理解是什么意思,所以每⼀个错误码都是 有对应的错误信息的。·比较str1和str2的前num个字符,如果相等就继续往后比较,最多比较num个字符,如果提前发现不一样,就提前结束,大的字符所在的字符串大于另外一个。• strtok函数的第⼀个参数为 NULL ,函数将在同⼀个字符串中被保存的位置开始,查找下⼀个标 记。原创 2023-09-17 19:46:14 · 100 阅读 · 1 评论 -
C语言:使用malloc函数模拟开辟一个二维数组
二维数组与指针之间有什么关系?我们可以如何利用指针去访问二维数组?事实上,arr[i][j]=*(*(arr + i) + j) .那么我们又可以如何使用malloc函数来模拟开辟一个二维数组?原创 2023-09-29 20:12:19 · 424 阅读 · 5 评论