自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 环形链表的约瑟夫问题

int val;}ListNode;

2024-04-22 19:20:01 732 17

原创 带头节点的单链表练习(写加注释花了5小时,已废)

【代码】带头节点的单链表练习(写加注释花了5小时,已废)

2024-04-18 21:23:25 676 27

原创 顺序表练习

【代码】顺序表练习。

2024-04-18 20:59:16 363 13

原创 预处理详解

C语言设置了一些预定义符号,可以直接使用,预定义符号也是在预处理期间处理的。__FILE__ //进⾏编译的源⽂件__DATE__ //⽂件被编译的⽇期__TIME__ //⽂件被编译的时间__LINE__ //⽂件当前的⾏号__STDC__ //如果编译器遵循ANSI C,其值为1,否则未定义int main()//VS2022不遵循ANSI Creturn 0;#define reg register //为 register这个关键字,创建一个简短的名字;

2024-04-12 20:59:54 1283 20

原创 理解 编译和链接

程序同时也可以使用静态(static)内存,存储于静态内存中的变量在程序的整个执行过程一直保留他们的值。这个阶段会报告错误的语法信息。在独立的环境中,程序的载入必须由手工安排,也可能是通过可执行代码置入只读内存来完成。就是根据汇编指令和机器指令的对照表一 一的进行翻译,也不做指令优化。• 处理#include 预编译指令,将包含的头文件的内容插入到该预编译指令的位置。这个过程是递归进行的,也就是说被包含的头文件也可能包含其他文件。链接是一个复杂的过程,链接的时候需要把一堆文件链接在一起才生成可执行程序。

2024-04-11 22:06:24 942 2

原创 VS2022断点调试技巧

按F5(如果F5键已有其他功能,先按Fn再按F5),开始调试。如果再按一次F5,是跳到下一个断点吗?是跳到了下一个断点,不过是。1.鼠标点击所在行,再按。

2024-04-11 17:36:01 419 1

原创 C语言 文件函数

include //读文件--"r",fgetc,fgets,fscanfint main()return 1;pf = NULL;return 0;#include //读文件--"rb",freadint main()return 1;int i = 0;for (i = 0;i < 4;pf = NULL;

2024-04-07 23:07:18 813

原创 C语言 联合和枚举

在C语言中是可以的(强制类型转换成枚举类型),但是在C++是不行的,C++的类型检查比较严格。像结构体一样,联合体也是由一个或者多个成员构成,这些成员可以不同的类型。5. 枚举常量是遵循作用域规则的,枚举声明在函数内,只能在函数内使用。2. 和#define定义的标识符比较枚举有类型检查,更加严谨。联合的成员是共用一块内存空间的,这样一个联合变量的大小,给联合体其中一个成员赋值,其他成员的值也跟着变化。一周的星期一到星期日是有限的7天,可以一 一列举。中的内容是枚举类型的可能取值,也叫。

2024-04-02 23:01:30 730 1

原创 C语言 结构体详解

4. 当一个结构。

2024-04-01 21:36:12 930

原创 整数和浮点数在内存中的存储

比如保存1.01的时候,只保存01,等到读取的时候,再把第一位的1加上去。这样做的目的,是节省1位有效数字。以32位浮点数为例,留给M只有23位,将第一位的1舍去以后,等于可以保存24位有效数字。同时,加法和减法也可以统⼀处理(CPU只有加法器)此外,补码与原码相互转换,其运算过程是 相同的,不需要额外的硬件电路。比如,2^10的E是10,所以保存成32位浮点数时,必须保存成10+127=137,即10001001。其实超过一个字节的数据在内存中存储的时候,就有存储顺序的问题,按照不同的存储顺序,我们。

2024-03-30 12:50:36 960 1

原创 C语言内存函数

和memcpy的差别就是memmove函数处理的。,复制的结果都是未定义的。

2024-03-25 16:57:02 225

原创 深入理解指针3

int (*) (int x, int y) //pf3函数指针变量的类型。所以str1和str2不同,str3和str4相同。首先我们再次理解一下二维数组,二维数组起始可以看做是。parr1 先和 [] 结合,说明 parr1是数组。, 当几个指针指向同一个字符串的时候,他们实际会。这里实参是二维数组,形参也写成二维数组的形式。所以 p是⼀个指针,指向⼀个数组,叫。,那么形参也是可以写成指针形式的。| | p指向。和*结合,说明p是⼀个。| p是。

2024-03-24 23:44:27 876 2

原创 深入理解指针2

(单位字节)而不是数组的大小(单位字节)。正是因为函数的参数部分是本质是指针,所以在函数内部是没办法求的数组元素个数的。上述的代码模拟出⼆维数组的效果,实际上。数组首元素(第⼀个元素)的地址。//可以认为[]有解引用的作用。,parr[i]找到的数组元素。,又可以指向一块区域。

2024-03-23 21:31:25 355 1

原创 关于while(--n)和while(n--)

以下是。

2024-03-23 20:23:58 309 1

原创 关于数据结构中typedef定义结构体

该结构体类型的(结构体类型 = struct+结构体名称),大部分数据结构书上这类结构体都是直接省略的。结构体名称(student)可省略。结构体名(Node)不可省略。,因为结构体中 创建了。

2024-03-21 15:42:38 275 5

原创 深入理解指针1

当指针变量指向⼀块区域的时候,我们可以通过指针访问该区域,后期不再使⽤这个指针访问空间的 时候,我们可以把该指针置为NULL。我们可以看出, char* 类型的指针变量+1跳过1个字节, int* 类型的指针变量+1跳过了4个字节。指针初始化 如果明确知道指针指向哪里就直接赋值地址,如果不知道指针应该指向哪里,可以给指针赋值。在指针类型中有⼀种特殊的类型是 void* 类型的,可以理解为。是C语言中定义的⼀个标识符常量,值是0,0也是地址,的指针(或者叫泛型指 针),这种类型的指针。

2024-03-21 14:36:23 495 1

原创 让我费时4小时的三子棋(可恶)

printf("该位置已经下过棋了,请重新下期:>\n");printf("输入的位置错误,请重新下棋:>\n");行,列,对角线,这样写,可通过改变game.h中的ROW,COL改变棋盘规格。printf("选择错误,请重新选择:>\n");printf("退出游戏\n");printf("玩家下棋:>");printf("玩家赢\n");printf("电脑赢\n");printf("请选择:>");printf("平局\n");//玩家赢 - '*'//电脑赢 - '#'//玩家赢 - '*'

2023-12-18 19:53:44 1277 1

原创 为什么数组传参时要把数组大小也传过去

不信的话:这里如果写成int str[40];用int str[]来接收,就只能一个小写变大写了。个字节,所以sizeof(str) 即这个指针大小 为。以上是我个人的理解,如果有什么不对的地方,还请大佬们指点。个字节,而sizeof(str[0])是一个。个字节,4/1 = 4,所以只有。,为一个指针大小,所以有问题。,但代码一中传过去的数组名是。,指针在32位平台上大小为。,应该用指针来接收,所以。sizeof(数组名)

2023-12-15 19:48:15 442

原创 从零开始介绍扫雷游戏及代码实现

printf("该坐标已经被排查过了,请重新输入要排查的坐标:>\n");//打印show棋盘,对于用到行和列时,你要问自己打印出或操作是9*9还是11*11,这样就不会搞错了。这里肯定是有解决办法的,比如: 雷和非雷的信息不要使用数字,使用某些字符就行,这样就避免。位置后,这个坐标处不是雷,这个坐标的周围有1个雷,那我们需要将排查出的雷的数量信息记多。冲突了,但是这样做棋盘上有雷和非雷的信息,还有排查出的雷的个数信息,就比较。printf("----开始扫雷----\n");

2023-12-12 16:23:45 875

原创 分支与循环中的小知识点(附猜数字游戏)

if(表达式1||表达式2||表达式3),当表达式1为真,不会执行表达式2和3,当表达式1为假,若表达式2为真,不会执行表达式3。一注意:如:if(a == 3)有些人会这样写if(3 == a),这样如果写成if(3 = a)时会报错,方便找错。二注意:多个关系运算符不宜连用,如:a

2023-12-02 20:49:32 813 1

原创 关于char arr 数组中隐藏的\0问题

当然写成 char arr1[] = { 'a','b','c','\0' };这种方式只对数组中的前两个元素初始化为01.而后8个元素系统会自动全部初始化。而后7个元素会自动全部初始化为0,可以看作空字符,即ASCII码为0的字符。这种方式没有定义数组的元素个数,系统会根据花括号中。在此对数组中的前三个元素初始化为 T,h, e,(’0‘才是字符0,值为48),注意:\0的ASC||值为0。这里"abc"中的\0没有读到。数据的个数决定数组元素的个数。,第四个元素初始化为0,即。以下用vs2022版本。

2023-11-30 17:21:34 648

原创 初识C语言的易错点1

这时必须输入什么-什么-什么,若想随便输入,可以写成是残废(“%d%*c%d%*c%d",&a,&b,&c),这时输入什么-什么-什么,什么——什么——什么等都可以。,结果就带有小数(如:5.0/2 = 2.500000,或为5/2.0,或5.0/2.0,我用vs2022默认为float型)注意:除%c以外,都会忽略起首的空白字符,若要跳过,scanf(" %c".&ch)%5d输出的宽度至少为5位,不够补0,默认右对齐,该数大于5位就打印全部。

2023-11-26 16:39:42 971 1

原创 大一新生的第一篇博客

我是一名来自乡镇的双非本科生,在志愿填报中选择了数据科学与大数据技术这个专业,要从此开始我的程序之旅了。认真上课,按时完成作业,一到两周写一篇总结性的博客,提升自己的技术水平。想成为鹏哥那样的“大牛”,能找到一份对标自己能力的工资的工作。一天花费2到3小时(包括上课和打代码)凭自己能力进入的薪资理想或可提升的公司。五、最想进入的IT公司。

2023-11-20 16:50:27 50 1

空空如也

空空如也

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

TA关注的人

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