自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 收藏
  • 关注

原创 深入理解预处理

宏定义时 # 和 define 之间可不可以加上空格呢?定义表达式时可以加上空格吗?调用时可以加空格吗?//err ,x 未定义return 0;上面代码除了标出的错误,其余都可以运行通过。说明 # 和 define 之间是可以加空格的。调用宏时也可以加上空格,但是在宏定义表达式时不可以加上空格。

2025-09-13 21:18:18 695 16

原创 C语言中比较冷门的关键字

volatile 被称为易变关键字,是一种类型修饰符,用它声明的类型变量表示可以被某些编译器未知的因素更改,比如:操作系统、硬件或者其它线程等。用 volatile 修饰时,使编译器对访问该变量的代码就不再进行优化,每次都从内存中读取,而不是缓存到CUP中,以后从CPU读取。

2025-09-03 16:06:20 648 9

原创 动态内存管理

free 函数的参数一定要是动态开辟的空间的起始地址,因为在开辟空间时,系统会保存开辟的内存的大小,释放时也会按照之前保存的大小去释放,如果传入的不是起始地址,程序可能会崩溃。如果想要释放一部分内存,可以使用 realloc 函数。

2025-08-24 20:59:51 1012 9

原创 自定义类型:结构体

这里对结构体成员p初始化时为什么会出错呢?因为这时已经定义好了变量n1,n1.p = { 2,3 }是对n1这个变量进行赋值,而不是初始化。可是我是对n1.p初始化,并不是对n1初始化呀?其实在定义好n1之后,就会在内存中为n1开辟一块空间,而n1的成员中有一个struct Point 类型的变量p,所以n1的空间中有一块是给p的,也就相当于同时定义了一个变量p,所以n1.p = { 2,3 }也是对结构体变量p进行赋值操作,而不是初始化。

2025-08-13 13:30:32 1084 3

原创 指针与数组

这里的p1是指针数组,由于[ ] 的优先级高于 * ,p1先和[ ] 结合,表示p1是一个数组,int* 表示数组中的元素是int* 类型的指针;p2是数组指针,由于加上了( ),p2先和 * 结合,表示p2是一个指针,指向的是一个有5个元素的整型数组。

2025-08-04 20:15:08 1133 1

原创 深入理解指针

调试一下可以发现,虽然x,y的值与a,b的值相同,也就是成功把a,b的值传入了函数,但是x,y的地址和a, b 的地址是不同的,它们管理着不同的空间。相当于int x = a; int y = b;  然后把x和y的值交换了,这对a和b自然是没有影响的。

2025-07-19 13:30:00 1051 1

原创 static和unsigned关键字

而函数fun2中的局部变量 i 有static修饰,循环调用10次输出的结果是1到10。因为static修饰局部变量时,该局部变量将在静态区开辟空间,每次调用fun2后,变量 i 并不会被销毁,而是在程序运行结束才被销毁。调用fun2时,i 只会初始化一次,之后每次调用都是在前一次调用结束时的 i 的基础上进行计算,所以 i 的结果每次增加1。

2025-07-08 21:12:01 854 2

原创 MineSweeper扫雷游戏

扫雷游戏就是用户选择一个坐标,如果位置是雷,就被炸死,游戏结束,如果位置不是雷,就显示该坐标周围有几个雷,直到将所有⾮雷都找出来,排雷成功。(这里我们就以简单版本的9*9的棋盘为例)。按照这个思路,我们可以设置一个9*9的二维数组来表示棋盘,然后设置雷,用1表示雷,用0表示非雷,这样统计出某个坐标周围有几个雷,然后把该坐标上的数字改成几即可。但是这样做有三个问题。第一,如果统计的坐标周围有1个雷,将该坐标改为1,那么下次统计其它坐标周围雷的个数时,这个排查出来的1和设置的雷的1就会产生混淆。

2025-06-10 23:12:56 1065 2

原创 关于C语言中的分支和循环

在 do while 循环中先执行“语句”,执行完语句,再去执行“判断表达式”,判断表达式的 结果是!=0,则继续循环,执行循环语句;判断表达式的结果==0,则循环结束。 所以在 do while 语句中循环体是至少执行一次的,这是 do while 循环比较特殊的地方。还有一个注意点:使用do-while循环时,在循环体内定义的变量不能在判断时使用,因为它的作用范围只在大括号内,即使是while判断时也不可以使用。

2025-06-03 22:40:44 597

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除