
C语言理解
文章平均质量分 82
SPMAX
这个作者很懒,什么都没留下…
展开
-
C语言中的数据存储方式
这篇文章主要是关于C语言中整形、字符型的变量是如何存储整形数字、是如何、何时发生整形提升,以及还有打印方式的不同打印的数字也不同的知识补充。int与unsigned int:int是在内存中是4个字节,也就是8*4=32个比特位的存储方式,是带正负号的整形。unsigned int在内存中也是占4个字节,32个比特位,但是它是不带正负号的整形。所以当一个负数存放到unsigned int类型的变量里面时:负数在二进制存储的时候第一个数字是1,当以补码的形式将负数存储到unsigned int的时原创 2022-03-06 01:23:29 · 2686 阅读 · 13 评论 -
C语言预处理#define指令和预定义符号
在执行一个程序之前,我们会有程序的翻译,也就是将代码翻译成可供机器识别的机器语言(也就是二进制),将程序变成目标文件才到了程序的执行。翻译和执行也叫翻译环境和执行环境。(翻译环境包括了代码的预处理、代码编译以及代码的汇编)而下面要说的是在翻译环境中的预处理操作的内容。预定义符号:__FILE__:进行编译的源文件。__LINE__:文件当前行号。__DATE__:文件编译的日期。__TIME__:文件被编译的时间。上面这四个预定义符号是语言内置的,下面是例子:#define:作为标识符,#d..原创 2022-02-27 20:32:24 · 1410 阅读 · 0 评论 -
C语言offsetof宏的作用和模拟实现
offsetof作用:offsetof作用:计算结构体成员相对于结构体偏移量,简而言之就是计算结构体成员相对于结构体首地址的距离。需要引用头文件<stddef.h>下面是计算实例:计算结果:所以成员 a偏移量是0,b是4,c是8。那计算完偏移量后的作用是什么呢?计算完偏移量后作用是为了计算结构体占用内存大小,详细请看:C语言深度理解结构体(内存对齐、位段、偏移量、柔性数组)_SPMAX的博客-优快云博客offsetof宏的模拟实现:首先要明白offsetof宏的..原创 2022-02-26 15:35:52 · 696 阅读 · 0 评论 -
C语言深度理解结构体(内存对齐、位段、偏移量、柔性数组)
前言:本文主要阐述c语言中对于结构体的深入理解,谈谈关于结构体占用内存是如何计算、如何理解位段、成员的偏移量以及柔性数组是什么、如何用,对于结构体的创建、引用等等不进行赘述。内容主要分为三部分:1 结构体里的偏移量、内存对齐2 结构体里的位段3柔性数组1 结构体中的偏移量、内存对齐在里了解内存对齐之前,要首先理解偏移量是什么?关于偏移量:是我们建立结构体时里面每一个成员的位置相对于结构体首地址的距离的长度,单位是字节数。举个例子:我们建立一个结构体 A,然后创建成员int类型x,char原创 2022-02-03 17:22:12 · 6365 阅读 · 26 评论 -
C语言冒泡排序进阶(模拟qsort函数)
本文主要讲述了是如何理解冒泡排序算法以及将冒泡排序进一步优化,达到可以接近模拟qsort函数的目的。主要分为三大板块:1:如何理解冒泡排序2:qsort函数是如何使用3:试着模拟qsort函数1 如何理解冒泡排序...原创 2022-02-02 01:41:48 · 398 阅读 · 13 评论 -
C语言实现通讯录(静态和动态两种方式)
前言在c语言学习了关于如何使用结构体以及动态内存管理之后,便掌握了实现通讯录的方法,接下来就是我实现通讯录的具体过程和经验总结。通讯录分为静态和动态实现两种方式。静态实现:实现一个通讯录;通讯录可以用来存储1000个人的信息,每个人的信息包括:姓名、性别、年龄、电话、住址提供方法:添加联系人信息删除指定联系人信息查找指定联系人信息修改指定联系人信息显示所有联系人信息清空所有联系人首先,先定义一个结构体存放个人信息:(这里用到了typedef自定义类型A,借用A代替str.原创 2022-01-30 22:21:03 · 1162 阅读 · 21 评论 -
C语言中的动态内存管理
前言在了解动态内存管理之前,我们要先了解关于c语言的内存中的栈区、堆区和静态区:栈区主要存储形式参数(也就是我们调用函数的时候一般会将我们定义的实参传入函数后所形成的参数),以及局部变量(比如说就是我们在main函数中定义的int A=10;等等的变量)。在栈区创立的变量在程序运行完后会自动回收,不需要我们去进行回收操作,而堆区是我们可以在堆区内存充裕时按照自己所需要的字节大小去主动申请空间的地方,我们称之为堆区,也就是我们下面主要要讲到的动态内存管理,相比于栈区更具有可操作性,需要自己去回收。最后一个时静原创 2022-01-30 01:47:51 · 1709 阅读 · 13 评论 -
C语言中memmove函数和memcpy函数区别、应用和模拟实现
C语言中memcpy函数和memcpy函数区别、应用和模拟实现原创 2022-01-29 00:03:18 · 772 阅读 · 3 评论