- 博客(18)
- 收藏
- 关注
原创 自定义类型:结构体
结构是⼀些值的集合,这些值称为成员变量。结构的每个成员可以是不同类型的变量。结构体就像我们定义一个变量使用int,char,一样的作用。
2026-01-14 20:01:21
66
原创 数据在内存中的存储
其实超过⼀个字节的数据在内存中存储的时候,就有存储顺序的问题,按照不同的存储顺序,我们分 为⼤端字节序存储和⼩端字节序存储,下⾯是具体的概念:⼤端(存储)模式: 是 指数据的低位字节内容保存在内存的⾼地址处,⽽数据的⾼位字节内容,保存在内存的低地址处。⼩端(存储)模式: 是 指数据的低位字节内容保存在内存的低地址处,⽽数据的⾼位字节内容,保存在内存的⾼地址处。上述概念需要记住,⽅便分辨⼤⼩端。
2026-01-13 18:03:55
571
原创 C语言内存函数
• 函数memcpy从source的位置开始向后复制num个字节的数据到destination指向的内存位置。• 如果source和destination有任何的重叠,复制的结果都是未定义的。• 这个函数在遇到 '\0' 的时候并不会停下来。
2025-12-24 23:06:20
98
原创 字符函数和字符串函数
C语⾔中有⼀系列的函数是专⻔做字符分类的,也就是⼀个字符是属于什么类型的字符的。这些函数的使⽤都需要包含⼀个头⽂件是 ctype.h这些函数的使⽤⽅法⾮常类似,我们就讲解⼀个函数的事情,其他的⾮常类似:islower 是能够判断参数部分的 c 是否是⼩写字⺟的。通过返回值来说明是否是⼩写字⺟,如果是⼩写字⺟就返回⾮0的整数,如果不是⼩写字⺟,则返回 0。据此我们做个练习。
2025-12-23 23:26:59
177
原创 深入理解指针2
之前我们学习了指针数组,指针数组是⼀种数组,数组中存放的是地址(指针)。数组指针变量是指针变量?还是数组?答案是:指针变量。我们已经熟悉:• 整形指针变量: int * pint;存放的是整形变量的地址,能够指向整形数据的指针。• 浮点型指针变量: float * pf;存放浮点型变量的地址,能够指向浮点型数据的指针。那数组指针变量应该是:存放的应该是数组的地址,能够指向数组的指针变量。
2025-12-12 23:14:21
394
1
原创 深入理解指针1
如果你想要去一个学校找你的朋友,他会告诉你他在哪个宿舍,告诉你宿舍的门牌号,这样,你就可以快速找到你的朋友。计算机中同样如此,一个内存单元就是一字节,一字节有8个比特位,就像是一个宿舍里住八个人。那这个宿舍的门牌号,我们就叫做,也称为。
2025-11-22 22:00:37
428
原创 操作符详解
2. 算术右移:左边⽤原该值的符号位填充,右边丢弃。二:其余由于我在写代码的时候都加上了注释就不多做文字解释了,看图。右移:1. 逻辑右移:左边⽤0填充,右边丢弃。一:左移操作符与右移操作符。左移:左边抛弃、右边补0。
2025-11-16 20:46:36
442
原创 函数的递归
接下来的内容文字描述太过繁琐,我主要通过图片向大家展示,大家只需要慢慢来理解,一条一条捋顺,也可以大事化小这个思想,主要记住一个思想----代入下一个值后再拆分。通过上述两个例子,我们不难发现递归的好处,但是要记住,递归是非常占内存的,大量的数据处理会导致栈溢出,比如第一个代码就不建议使用递归,接下来我们用一个例子来展示。函数的递归,其实是一种思想,简单说就是函数调用自己,递就是递推,归就是回归,而递归,就是把一个大的问题细化为多个小问题,即大事化小。• 每次递归调⽤之后越来越接近这个限制条件。
2025-11-13 11:30:54
442
原创 static 和extern的意义与使用
其实 static 修饰函数和 static 修饰全局变量是⼀模⼀样的,⼀个函数在整个⼯程都可以使⽤, 被static修饰后,只能在本⽂件内部使⽤,其他⽂件⽆法正常的链接使⽤了。但是全局变量被 static 修饰之后,外部链接属性就变成了内部链接属性,只能在⾃⼰所在的源 ⽂件内部使⽤了,其他源⽂件,即使声明了,也是⽆法正常使⽤的。如下图,图一中每次i进入test函数,都会重新创建变量i=0,然后i++打印出来,i的生命周期就在test函数中,所以每次打印都为1.对于全局变量来说:它的生命周期就是整个程序。
2025-11-13 10:59:08
597
原创 函数与数组结合--扫雷游戏
由于9*9的二维数组设计会导致边界难以正确算出检测点附近雷的数量,故用11*11帮助,相较于9*9多余部分不计。test.c----游戏的测试。game.c函数的实现。saolei.h声明。
2025-11-06 23:36:09
467
原创 自定义函数的创建与使用
在使用函数解决问题的时候,难免会使用到数组作为参数传递给函数,在函数内部对数组进行操作,我们来做一个练习:写⼀个函数将⼀个整型数组的内容,全部置为-1,再写⼀个函数打印数组的内容。如图,我们创建了函数“set_arr”,运用for循环在函数中把数组arr的元素全部便为-1,值得注意的是,实参我们要使用的是arr,形参我们要使用的是arr[10],打印同理,不过在使用set_arr之前和之后,我们分别使用了两次函数printf_arr,所以第一次打印的是一到十,第二次打印是-1.二:自定义函数的语法形式。
2025-11-03 23:37:23
418
原创 一维数组与二维数组
那么不是每个数组都很好数,我们如何快速知道数组中元素的个数呢,其实就是简单的除法运算,我们知道一个数组是由多个元素组成,每个元素由我们定义的类型而占该类型的内存大小,所有元素内存之和就是数组的内存,我们用总内存除以单个元素的所占的内存便可以计算出元素个数,如图,int类型的大小是4,所以arr数组有10个int类型元素,它的内存大小是40,我们再随便除以一个元素,40/4,计算出个数为10,单位是字节。记住这个概念结合代码辅助理解。#####数组的类型,数组的类型很好记,去掉数组名就是数组的类型,如图。
2025-10-27 23:31:27
530
1
原创 猜数字小游戏
接下来我们就要写游戏内容了,首先我们要创造1-100的数字,使用int r = rand() % 100 + 1;,因为模100是0到99,所以+1之后就是1-100,接下来就是很简单的循环,直接上代码。首先我们要制作游戏菜单,很容易,打印就行,再用scanf函数让玩家选择,明显do whle循环更适合。写这个游戏之前,我们需要先知道需要什么。1:需要能自动生成1-100的随机数。2:玩家猜对了游戏结束。
2025-10-20 21:16:47
345
原创 分支于循环2
这个比较好理解就不多解释,但如果我们想要实现输入1234打印出4321,输入7865打印出5687该如何做呢,我们知道,如果一个数对10取余,其得到的一定是个位所在的数,那么我们便可以由此得到第一位数,又因为在C语言中使用除法可以取整,那么我们就可以再得到去了“余数”后的数,代码实现如图。在C语言中break是用于终止循环的,使用其可以跳出循环,执行循环以外的语句,而continue是跳出其在循环中后面的代码,进行下次一次循环,如果我们想要打印“1234 678910”便可以使用continue。
2025-10-20 20:59:36
448
原创 分支和循环1
当使用&&时,因为需要满足两个条件,所以如果左边为0,则不计算右边的,整个式子为0,当使用||,因为只用满足其中一个条件,如果所以两个不成立才为0,一个不成立仍返回1,大家实践几个就熟悉了。当然,如果只有if我们可能感觉会缺点什么,于是我们加上else,if如果不满足,将会执行else后的语句,值得注意的是,if和else后我们只能跟一条语句,如果想使用多条,我们可以加上{}嵌套,如图。还有一个小点,我们使用这些运算符的时候写出一些式子,如果式子成立,打印出来的整型就是1,不成立就是0。
2025-10-12 00:05:33
343
原创 数据类型和变量2
一:1.我们来介绍一下最基本的printf函数和占位符的应用,在C语言中如果我们在"%d"的d前面加上数字那么就会“打印出多少位”,但值得注意的是,打印的是最小宽度,意思就是我们打印四位数,他会打印五位,其中一位是空格,我们打印六位,他就会照常打印六位,如图。3.我们知道,如果想要保留几位小数,我们只需要在“%.xf”中把x换成需要保留的几位小数的数字即可,但是假如我们想要实现既保留小数由限制宽度,依然很简单,我们写成"%y.xf",其中y是宽度,x是保留位数。如图并且提供一个进阶。
2025-09-27 23:04:28
373
原创 数据类型和变量1
一:c语言中short为短整型,int为整型,long为长整型,long long为更长的整型,依次递增,它们能包含的整型大小更大。二:布尔类型,c语言中0为假,非0为真,我们也可用_Bool来表示,其既可以表示为真也可以表示为假,由我们自己来定义。三:如果我们想要计算一个数据类型的长度,可以用到sizeof操作符,其操作数可以是类型也可以是表达式和变量,下面我们来计算一些,注意使用"%zd"其计算的单位为字节,换算如图注意,C预言标准规定sizeof(long)>=sizeof(int)。接下来我们看一个
2025-09-24 21:40:25
542
原创 字符串与多个字符长度的差异
但arr2由多个单字符组成,如果不人为加上\0,求其长度时编译器会一直向后检索直到检索出\0才停止,故其长度是不可定的,可能出现33或者其他长度,但只要人为加上\0,其长度就为6。C语言中,如图arr1为字符串,末尾自有\0,求长度即求\0之前字符的长度,故arr1的长度为6。
2025-09-22 18:10:52
417
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅