
C语言
文章平均质量分 88
C语言基本知识
LongQ30ZZ
这个作者很懒,什么都没留下…
展开
-
malloc calloc和realloc区别和联系
malloc是一个⼀个动态内存开辟的函数:它的函数原型是这个函数向内存申请⼀块连续可⽤的空间,并返回指向这块空间的指针。1.如果开辟成功,则返回⼀个指向开辟好空间的指针。2.如果如果开辟失败,则返回⼀个 NULL 指针,因此malloc的返回值⼀定要做检查。运行结果如图3.返回值的类型是void*,所以malloc函数并不知道开辟空间的类型,具体在使⽤的时候使⽤者自己来决定。原创 2024-11-12 17:06:20 · 847 阅读 · 0 评论 -
C语言指针(下篇,题目的练习)
注:在x86的环境下,sizeof计算地址的大小为4个字节。以下代码运行结果是什么?原创 2023-12-28 15:38:45 · 461 阅读 · 1 评论 -
C语言指针(中篇)
如果你把函数的指针(地址)作为参数传递给另⼀个函数,当这个指针被⽤来调⽤其所指向的函数时,被调⽤的函数就是回调函数。回调函数不是由该函数的实现⽅直接调⽤,⽽是在特定的事件或条件发⽣时由另外的⼀⽅调⽤的,⽤于对该事件或条件进⾏响应。,当sizeof中单独放数组名时,表示的是整个数组的,计算的是整个数组的大小,单位是字节。qort的模拟实现也是按照冒泡排序来进行模拟实现的,也使⽤了回调函数。这是因为,三个都是指向数组的启示地址所以地址都是一样的。,这里表示的是整个数组,取出的是整个数组的地址。原创 2023-12-24 15:54:47 · 483 阅读 · 1 评论 -
C语言——文件操作
磁盘上的⽂件是⽂件。但是在程序设计中,我们⼀般谈的⽂件有两种:程序⽂件、数据⽂件(从⽂件功能的⻆度来分类的)。2.1 程序⽂件程序⽂件包括源程序⽂件(后缀为.c),⽬标⽂件(windows环境后缀为.obj),可执⾏程序(windows环境后缀为.exe)。2.2 数据⽂件⽂件的内容不⼀定是程序,⽽是程序运⾏时读写的数据,⽐如程序运⾏需要从中读取数据的⽂件,或者输出内容的⽂件。2.3 ⽂件名⼀个⽂件要有⼀个唯⼀的⽂件标识,以便⽤⼾识别和引⽤。原创 2023-12-14 14:06:18 · 1562 阅读 · 1 评论 -
C语言指针(入门版)
在指针类型中有⼀种特殊的类型是 void* 类型的,可以理解为⽆具体类型的指针(或者叫泛型指针),这种类型的指针可以⽤来接受任意类型地址。由上面的代码我们可以知道指针变量的大小和类型⽆关,只要是指针变量,在同⼀个平台下,⼤⼩都是⼀样的,为什么还要有各种各样的指针类型呢?• 注意指针变量的⼤⼩和类型是⽆关的,只要指针类型的变量,在相同的平台下,大小都是相同的。的左边,修饰的是指针指向的内容,保证指针指向的内容不能通过指针来改变。的右边,修饰的是指针变量本⾝,保证了指针变量的内容不能修改,但是指针指。原创 2023-12-11 20:33:57 · 916 阅读 · 1 评论 -
C语言中“strlen”,“strcpy”,“strcat”,“strcmp”的使⽤和模拟实现
1:strlen统计的是’\0’之前的字符长度,以‘\0’为结束标志,strlen函数返回的是在字符串中 ‘\0’ 前⾯出现的字符个数(不包含 ‘\0’ )。由图知strcpy返回的是一个目的地的地址(也就是第一个参数的地址),参数的两个字符串,第一个参数是要拷贝到的目的地,第二个参数是要被拷贝的字符串的来源。因为arr1中的c的ASCII码值小于arr2中的d,所以返回小于0的值。3: 注意函数的返回值为size_t,是⽆符号的( 易错 )。• ⽬标空间必须有⾜够的⼤,能容纳下源字符串的内容。原创 2023-12-10 14:02:34 · 1909 阅读 · 1 评论 -
C语言中的结构体
C语⾔已经提供了内置类型,如:char、short、int、long、float、double等,但是只有这些内置类型还是不够的,假设我想描述学⽣,描述⼀本书,这时单⼀的内置类型是⾏的。结构的每个成员可以是不同类型的变量,如:标量、数组、指针,甚⾄是其他结构体。上面的代码有两种传参的方式,一种是传参数,一种是传地址。如果传递⼀个结构体对象的时候,结构体过⼤,参数压栈的的系统开销⽐较⼤,所以会导致性能的下降。有时候我们得到的不是⼀个结构体变量,⽽是得到了⼀个指向结构体的指针。其原因是结构体的对齐规则。原创 2023-12-03 11:42:55 · 1514 阅读 · 1 评论 -
C语言整数和浮点数在内存中的存储
这是因为在计算机系统中,我们是以字节为单位的,每个地址单元都对应着⼀个字节,⼀个字节为8bit 位,但是在C语⾔中除了8 bit 的 char 之外,还有16 bit 的 short 型,32 bit 的 long 型(要看。⽐如:0.5 的⼆进制形式为0.1,由于规定正数部分必须为1,即将⼩数点右移1位,则为1.0*2^(-1),其阶码为-1+127(中间值)=126,表⽰为01111110,⽽尾数1.0去掉整数部分为0,补⻬0到23位。那么,S=1,M=1.01,E=2。的,是节省1位有效数字。原创 2023-11-28 19:25:16 · 788 阅读 · 0 评论 -
C语言的操作符
其实10进制的123表⽰的值是⼀百⼆⼗三,为什么是这个值呢?其实10进制的每⼀位是权重的,10进制的数字从右向左是个位、⼗位、百位…,分别每⼀位的权重是 10的0次方 , 10的1次方 , 10的2次方 …如下图所示由十进制可类推二进制二级制转八进制8进制的数字每⼀位是0。原创 2023-11-09 16:39:16 · 54 阅读 · 1 评论 -
C语言函数的递归
1.递归是一种解决问题的方法,在C语言中,就是函数自己调用自己下面写一个最简单的C语言递归代码int main()main();return 0;运行的结果为无限打印haha递归的思想:把⼀个⼤型复杂问题层层转化为⼀个与原问题相似,但规模较⼩的⼦问题来求解;直到⼦问题不能再被拆分,递归就结束了。所以递归的思考⽅式就是把⼤事化⼩的过程。递归中的递就是递推的意思,归就是回归的意思。原创 2023-11-06 23:13:09 · 69 阅读 · 0 评论 -
C语言实现扫雷小游戏
首先我们先用do-while循环让这个游戏可以重复游玩,menu()是一个专门用来打印开始菜单的一个函数,game()是我们实现扫雷游戏的一个函数。input是我们输入的值,当我们输入:1,switch语句会让我们开始游戏,输入:0,则结束游戏。我们把雷写作1,非雷的位置写作0。这也写我们发现当我们输入绿色方格的坐标,屏幕打印1,不能反映附近雷的个数,还有第二个问题,我们发现下面的的黄色的方格已经越界了。第一个问题我们可以这样解决:创建两个数组,一个存放雷的信息,一个存放排查出来的雷的信息。原创 2023-11-01 14:37:38 · 70 阅读 · 1 评论 -
C语言数组
C语言数组的知识点以及应用原创 2023-10-28 17:14:07 · 73 阅读 · 1 评论 -
C语言的循环结构
C语言循环语句的一点点知识点原创 2023-10-24 16:37:35 · 84 阅读 · 0 评论 -
C语言的分支
C语言分支的知识点原创 2023-10-23 23:48:57 · 372 阅读 · 0 评论