![](https://img-blog.csdnimg.cn/direct/1a7681b28bbb45ff9481ad60f0f0133d.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
C语言
文章平均质量分 93
C语言的基础知识
考研势在必行
大二计算机专业一枚
展开
-
C语言:文件操作
磁盘上的文件就是文件比如:在程序设计中,我们将文件分为两类:程序文件和数据文件。原创 2024-03-16 15:53:35 · 993 阅读 · 0 评论 -
C语言:动态内存管理
这个代码中的元素个数由键盘输入,并将其作为元素个数,这在数组中是做不到的(C99之前),所以提供了很大的便捷性,不用再为数组分配一块巨大的空间防止其越界,这样节省了空间的开销。针对情况2:当原有空间没有足够的空间的时候,会开辟一块足够大的新的空间用以存储新的数据,并将旧的数据复制到新空间中,还会释放旧空间,同时返回新的空间的地址。使用realloc函数分配的额外空间是不初始化为0的,所以打印出来的后四位需要自己赋值,不然的话是随机值。malloc函数用以创建一片动态的空间,空间大小由我们自己决定。原创 2024-03-15 20:00:09 · 967 阅读 · 0 评论 -
C语言:结构体
结构体是一些值的集合,这些值被称为成员变量,结构体的每个成员可以是不同类型的变量。原创 2024-03-07 20:18:38 · 687 阅读 · 0 评论 -
C语言:内存函数
注意count时字节数,因为memcpy函数的第三个参数是需要复制的字节数,因为int类型的字节数时4个字节,所以需要复制5个元素的话就需要20个字节。memmove和memcpy都是起到的复制的作用,不同点是memmove函数可以处理的原内存块和目标内存的块是可以重叠的。如果要处理的原空间和目标空间出现重叠,那么必须使用memmove函数进行处理。原创 2024-03-07 19:07:37 · 641 阅读 · 0 评论 -
C语言:字符函数和字符串函数
在学习编程的过程中,我们经常需要处理字符和字符串,在C语言库中定义了一些方便我们操作的函数。原创 2024-03-07 17:39:26 · 880 阅读 · 0 评论 -
C语言:指针(二)
qsort函数需要4个参数,第一个参数是数组首元素的地址,第二个参数是数组中元素的个数,第三个参数是数组中数据类型的大小,第四个参数是一个函数,作用是实现排序这种数据的方法。在main函数中,将test2的地址传递给test1,然后test1用函数指针变量来接收,然后调用test2函数,那么test2函数就是回调函数。函数指针是用来存放函数的地址的,那么有很多函数,要将它们的地址存放在一起,那么就可以使用函数指针数组。指针变量也是变量,是变量就有地址,所以二级指针是用来存放一级指针变量的地址的。原创 2024-02-29 15:55:44 · 2139 阅读 · 0 评论 -
C语言:指针(一)
在内存中将其划分为一个一个的内存单元,每个内存单元的大小取一个字节(8个bite),每个内存单元也有一个编号,就相当于门牌号一样,这样CPU就可以快速访问内存中需要的数据了。在32位计算机中有32根地址总线(相关知识可以自行学习),每根地址总线都可以使用电信号来表示0和1,这样就由32根地址总线产生的二进制序列就可以当作地址,那么一个地址就是32个bite位,需要4个字节来存储。pa是指针变量,int*是指针变量的类型, *表示pa是指针变量,int表示pa指向的类型是int类型。的效果和a = 0;原创 2024-02-21 18:46:52 · 2631 阅读 · 3 评论 -
C语言:操作符详解
八进制中的每个数字都是由0~7组成的,所以至多需要3个二进制位就可以存放一个八进制的一位数(因为7 的二进制数位111),所以直接从右向左依次取3个二进制位转化为一个十进制数字就可以形成八进制数,如果到左边位数不够直接换算就行。第一位1溢出,即为00000000 00000000 00000000 00000000,由于符号位为0是正数,不要转换为原码,则结果就是0.各种运算符的优先级都有所不同。1 的补码就是原码:00000000 00000000 00000000 00000001。原创 2024-02-19 20:10:09 · 1201 阅读 · 1 评论 -
C语言函数(四):递归
在学习函数这一章节,递归是每个计算机语言绕不开的知识点,那什么是递归呢?递归就是一种解决问题的方法,在C语言中,递归就是函数自己调用自己。main();return 0;上述代码就是一个简单的递归程序,只不过它只是演示了递归的基本作用,不是为了解决问题,这不是一个正确的递归程序,代码最终会陷入死循环,导致栈溢出。把一个大型的复杂的问题层层转化为一个与原问题相似,但规模较小的子问题来求解,直到子问题不能再被拆分,递归就结束了。所以递归的思考方式就是将大事化小的过程。递归中的递就是递推的意思,原创 2024-02-15 11:37:46 · 971 阅读 · 1 评论 -
C语言函数(三):数组和函数实现扫雷游戏
这个函数用以打印棋盘,可以看出棋盘的规划是否正确,当然我们只用打印show棋盘,不用打印mine棋盘,因为mine棋盘可以看到的全是0,这里为了不多写一个函数用来分别打印’*‘和’0’,所有我们再传一个一个参数type,告诉Printboard函数应该打印什么字符。使用FindMine函数排查雷,先输入要查看的坐标,如果坐标符合规定,则看这个坐标是否是雷,如果不是则计算周围8个位置的和并输出在棋盘上,当排查完71个没有雷的位置后,游戏成功。9的棋盘上布置雷的信息和排查雷,首先想到的是创建一个9。原创 2024-02-10 12:04:14 · 1094 阅读 · 1 评论 -
C语言函数(二):详解static和extern
指的是变量的创建(申请内存)到变量的销毁(收回内存)之间的一个时间段。1.局部变量的生命周期是:进入作用域创建,生命周期开始,出作用域生命周期结束2.全局变量的生命周期:整个项目的声明周期。原创 2024-02-08 11:54:39 · 769 阅读 · 0 评论 -
C语言函数(一):基础知识
自定义函数非常重要,它的书写给程序员写代码提供了更多的创造性一般在使用函数的时候,直接将函数写出来就可以使用了,像上面的代码,直接将自定义函数放在主函数的上面就可以了,但是如果我们将自定义函数放在主函数的下面,程序就会弹出警告。int x = 10;int y = 23;printf("实参x为:%p 实参y为:%p\n", &x, &y);//输出33return 0;printf("形参x为:%p 形参y为:%p\n", &x, &y);但如果直接运行代码也不会报错,依然能够执行。原创 2024-02-07 20:34:47 · 1162 阅读 · 1 评论 -
C语言数组
数组的类型区别与元素的类型,是一个全新的概念,比如 int a = 3;该数组的大小为:40字节,这是因为有10个int类型的元素,而int类型的大小为4字节,所以大小为4*10=10.数组是一个比较简单的知识,但是其中也有相对较难理解的点,下面看看这两道题目,可以巩固学到的知识。一维数组是相同元素的集合,而二维数组就是一维数组的集合,二维数组以上的数组称为多为数组。在C语言中数组的访问提供了一个操作符:[ ] ,叫做:下标引用操作符。所以可以用总的元素的大小除以一个元素的大小就可以得到元素的个数了。原创 2024-02-06 05:00:00 · 2087 阅读 · 2 评论 -
C语言选择与循环
C语言时结构化的程序设计语言,这里的结构是:顺序结构,选择结构(if语句,switch语句),循环结构(while循环,for循环,do-while循环)。1.2语法规则表达式为真,则执行语句,表达式为假,则不执行语句在C语言中0表示假,非0表示真。执行流程图:if和else之间都只能执行一条语句,所以只有在大括号中才能执行多条语句。在if-else语句中,else可以与另一个if语句相结合,这样可以实现多重判断。这里的if和else之间就构成了嵌套的if语句,以实现多重循环如果有多条if原创 2024-02-04 22:14:28 · 1234 阅读 · 1 评论 -
C语言数据类型和变量
C语言数据类型和变量原创 2024-01-31 21:30:35 · 1196 阅读 · 0 评论 -
C语言常见概念
C语言常见概念原创 2024-01-29 13:24:38 · 1462 阅读 · 0 评论