
C
文章平均质量分 93
C从入门到入土
爱敲代码的三毛
不要因为走得远就忘记当初为什么出发。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C语言实现九大排序算法
排序算法原创 2022-12-27 23:00:03 · 3107 阅读 · 1 评论 -
梦开始的地方—— C语言预处理+编译过程
C语言中由一些预定义的符号,它们分别保存这一些信息,它们也是在预处理阶段被直接替换的。__FILE__ //进行编译的源文件 __LINE__ //文件当前的行号 __DATE__ //文件被编译的日期 __TIME__ //文件被编译的时间 __STDC__ //如果编译器遵循ANSI C,其值为1,否则未定义printf("进行编译的源文件: %s\n" , __FILE__);printf("文件当前的行号: %d\n" , __LINE__);原创 2022-12-09 15:35:39 · 870 阅读 · 0 评论 -
梦开始的地方——C语言文件操作详解
所谓的文件就是存储在计算机磁盘上的文件,在程序设计中,谈到文件一般可以分为两种文件。程序文件比如后缀为的C语言的源程序文件,还有的可执行文件(在windows中)。不过在Linux系统中文件后缀名只是起到一个标识作用,后缀和文件类型无关。数据文件数据文件的内容不一定是程序,而是程序运行是读写的数据。比如程序运行时需要从中读取数据的文件,或者是程序输出内容的文件,比如的文本文件。而C语言文件操作一般围绕的就是数据文件,有的时候我们希望把一些数据保存到磁盘中永久存储,而不是在内存中,停止程序数据就丢失了。缓冲文原创 2022-12-06 19:32:57 · 941 阅读 · 0 评论 -
梦开始的地方——C语言柔性数组
在C99中,结构体最后一个元素它允许是一个未知大小的数组,这就叫做柔性数组成员。这个概念听起来可能有点不可以思议,但它的确存在。来看这么一段代码int num;//柔性数组成员 };上面那个写法有的编译器可能会报错,可以改成以下写法。int num;//柔性数组成员 };这里的arr数组就是一个柔性数组,它没有指定数组的大小,arr[0]这样的写法也非常奇怪。但这种写法只限于结构体的最后一个成员。柔性数组指的是数组的大小是柔性可变的。原创 2022-11-29 13:11:39 · 728 阅读 · 1 评论 -
梦开始的地方—— C语言动态内存管理(malloc+calloc+realloc+free)
但是很多时候,我们对于空间的需求上面的两种情况是满足不了的,有的时候我们需要的内存大小要程序运行之后才能知道,或者说有时候数组大小空间不够了,那么数组编译时开辟的内存空间的方式就不可行了,这个时候就需要动态内存开辟了。函数则更加灵活,有的时候我们会发现申请的空间太小了有时候又会绝对申请的空间太大了。当开辟内存过大时,ptr是有可能为NULL指针的,当为NULL的时候,,而我们使用的局部变量和函数的形参是在栈上开辟空间。是否非动态开辟的内存空间,也是错误的。函数是C语言提供的动态内存开辟的函数。原创 2022-11-21 09:44:38 · 585 阅读 · 0 评论 -
梦开始的地方 —— C语言(枚举+位段+联合体)
联合是一种特殊的自定义类型,它也和结构体类似,也可以包含一系列成员,特征是这些成员共用同一块内存空间,所以叫做联合也可以叫做共用体。通过union关键字定义一个联合类型int id;char ch;};return 0;}通过enum关键字来定义枚举类型,用枚举来描述一个三原色enum RGB {RGB就是自定义的枚举类型,枚举类型的成员是有初始值的,默认从0开始return 0;}打印结果1 2 3当然也可以修改默认值return 0;}打印结果10 15 16。原创 2022-11-15 10:26:18 · 536 阅读 · 0 评论 -
梦开始的地方 —— C语言结构体详解
通过struct关键字就可以定义一个结构体。原创 2022-11-13 10:57:40 · 587 阅读 · 0 评论 -
梦开始的地方 —— C语言内存函数memcpy-memmove-memset(使用+模拟实现)
是C语言提供的复制内存块的函数,和字符拷贝函数strcpy有点像,但是strcpy只适用于字符,而适用整形、浮点型等于各种类型的数据拷贝。source\0这里的实现是按照C语言标准规定,因为这里是从前想后拷贝,如果这里拷贝同一块空间的内容就会出现覆盖的情况。而有些编译使用函数对同一块空间内容进行拷贝,也不会出现覆盖的情况,但不能保证所有编译器都能不覆盖。原创 2022-11-12 10:30:24 · 552 阅读 · 0 评论 -
梦开始的地方 —— C语言常用字符函数汇总
strncpy也是C语言提供的字符串拷贝函数,它和strcpy的区别是它可以指定拷贝字符的数量,不像strcpy使劲往下拷,要遇到。strerror是C语言提供的返回错误信息的函数,每个库函数在使用的时候,如果发送错误,都会有对应的错误码。strncat也是C语言提供的库函数,用来字符串追加,和strcat不同的是它可以指定追加指定个数的字符。strlen是C语言提供的求字符串长度的库函数,它的参数是一个字符指针,可以给它传递数组名和字符串。strcpy是C语言提供的字符串拷贝的库函数,它由两个参数。原创 2022-11-10 10:42:18 · 563 阅读 · 0 评论 -
梦开始的地方——C语言指针练习题
我们知道每个内存单元的大小是一个字节,每个字节有自己的一个地址,上面+1相当于对地址+1原创 2022-11-07 15:45:03 · 317 阅读 · 0 评论 -
梦开始的地方 —— C语言: 函数指针+函数指针数组+指向函数指针数组的指针
整形指针是指向整形的指针:存放整形的地址数组指针是指向数组的指针:存放数组的地址那么函数指针?它也是一个指针,这个指针指向的是一个函数,它里面存放的是函数的地址。来看一段代码return 0;}*pf被括号括起来说明它是一个指针,这个指针指向是一个函数(int, int)说明这个函数有两个参数,都是int类型的最左边那个int ,说明函数的返回值是int我们知道把变量名去掉剩下的就是它的类型这就是函数指针的一个简单运用又或者是这么一段代码return 0;}原创 2022-11-03 19:28:49 · 511 阅读 · 1 评论 -
梦开始的地方 —— C语言指针进阶
指针是一个变量,存放的是地址,地址是某一块内存空间的唯一标识原创 2022-11-02 20:13:08 · 1969 阅读 · 2 评论 -
梦开始的地方 —— C语言数据在内存中的存储(整形+浮点型)
我们发现无论是32为还是64位的浮点数,它能保存的小数点后面的有效数字位都是有限性。所以有些小数在计算机中是没法精确存储的原创 2022-11-01 10:43:47 · 869 阅读 · 0 评论 -
梦开始的地方——VS2019调试技巧
注意:在vs2019中只有将环境学则为debug才能调试。原创 2022-10-28 09:53:01 · 2162 阅读 · 0 评论 -
梦开始的地方—— C语言指针入门
下面这段代码我们知道对变量取地址得到的是一个地址也就是指针,把这个指针放到一个数组里,这个数组就是指针数组,[]表示是数组,int*是一个整形指针,所以这是一个整形的指针数组。我们知道指针可以加减操作,来看这么一段代码,这个代码的指针p指向数组的最后一个元素,然后不断减减,判断当前地址是否要大于等于数组第一元素的地址,完成了数组的赋值。pp是一个二级指针变量里面存的是一级指针p的地址,通过对pp进行解引用操作就能拿到p的地址,而p里面存的是变量a的地址,再次对p进行解引用操作就能得到变量a的值。原创 2022-10-26 20:57:51 · 1180 阅读 · 1 评论 -
梦开始的地方——C语言中那些细节
因为1个字节是8个比特位,存放到tmp里就会发送截断,这个时候tmp里装的就是:10000010,最前面的1是符号位。表达式的整型运算要在CPU的相应运算器件内执行,CPU内整型运算器(ALU)的操作数的字节长度。因此,即使两个char类型的相加,在CPU执行时实际上也要先转换为CPU内整型操作数的标准长。如果某个操作符的各个操作数属于不同的类型,那么除非其中一个操作数的转换为另一个操作数的类。一般就是int的字节长度,同时也是CPU的通用寄存器的长度。函数在不写放回值的时候默认返回的是整形,返回随机值。原创 2022-10-26 20:47:47 · 535 阅读 · 0 评论