自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 一文搞懂 Linux 权限:概念、命令与实践

Linux 权限的核心是 “最小权限原则”—— 给用户分配刚好能完成任务的权限,避免过度授权。用ls -l查看权限,用chmod改权限,用chown/chgrp改归属;文件常用644(只读)、755(可执行),目录常用755(可进入);特殊场景用 SUID(临时提权)、SGID(共享目录)、Sticky Bit(公共目录防误删)。

2025-11-24 22:23:16 1012

原创 被误解的初始化逻辑 —— 为什么需要初始化列表?

/ 初始化列表方式private:int _age;public:// 成员变量在初始化列表中直接初始化根据 cppreference 的定义,初始化列表的本质是直接初始化类的成员变量,其语法规则严格限定:成员变量后只能使用括号传递初始值,不可用赋值符号=,自定义类型会自动调用匹配参数的构造函数。

2025-11-24 21:12:38 875

原创 打造经典贪吃蛇游戏全攻略---保姆级教程(C语言版)

开发贪吃蛇游戏需要Windows平台和Visual Studio环境。头文件以使用控制台API。使用宽字符绘制边界(注意需用。

2025-09-22 13:58:39 245

原创 C++日期类运算符重载全解析(保姆级教程)

通常是全局函数,而非类的成员函数。如果类的数据成员是私有的,全局运算符无法直接访问这些成员。通过友元声明,可以赋予这些运算符访问私有成员的权限,从而实现高效的输入输出操作。跨年/跨月处理:在加减天数时,通过循环正确处理月份和年份的进位/借位。日期差计算:通过逐日比较的方式计算两个日期的天数差,确保准确性。代码复用:多个运算符通过复用其他运算符实现,减少重复代码(如。负天数处理:将负天数的加减运算转换为相反方向的正天数运算。)未在代码片段中显示,这些是实现日期计算的基础。函数(用于获取某年某月的天数)和。

2025-09-14 09:59:14 338

原创 顺序表操作保姆级教程:增删查改全解析(c语言版)

此实现适用于小规模数据,但频繁头部操作(如PushFront/PopFront)在高负载场景性能较低。若需优化,可考虑链表或循环缓冲区结构。时间复杂度:扩容操作平均$O(1)$(分摊分析),最坏$O(n)$(当需要复制所有元素时)。增加操作涉及在尾部、头部或指定位置插入元素,需先调用。删除操作移除元素,需确保数组非空(通过。

2025-09-10 08:11:38 633

原创 深入解析C++类的默认成员函数---day_four

像Stack这样的类,虽然也都是内置类型,但是_a指向了资源,编译器自动生成的拷贝构造完成的值拷贝/浅拷贝不符合我们的需求,所以需要我们自己实现深拷贝(对指向的资源也进行拷贝)。析构函数与构造函数功能相反,析构函数不是完成对对象本身的销毁,比如局部对象是存在栈帧的,函数结束栈帧销毁,他就释放了,不需要我们管,C++规定对象在销毁时会自动调用析构函数,完成对象中资源的清理释放⼯作。我们不写,编译器默认生成的构造,对内置类型成员变量的初始化没有要求,也就是说是是否初始化是不确定的,看编译器。

2025-05-17 20:07:14 883

原创 C++入门---day_three

2.实例化2.1 实例化概念(1)用类类型在物理内存中创建对象的过程,称为类实例化出对象。(2)类是对象进行⼀种抽象描述,是⼀个模型⼀样的东西,限定了类有哪些成员变量,这些成员变量只是声明,没有分配空间,用类实例化出对象时,才会分配空间。(3)⼀个类可以实例化出多个对象,实例化出的对象 占用实际的物理空间,存储类成员变量。

2025-04-24 21:34:13 745

原创 C++入门---day_two

1.引用的概念和定义引用不是新定义⼀个变量,而是给已存在变量取了⼀个别名,编译器不会为引用变量开辟内存空间,它和它引用的变量共用同⼀块内存空间。列如,孙悟空又可以叫,可以是弼马温,还能是C++中为了避免引⼊太多的运算符,会复⽤C语⾔的⼀些符号,⽐如前⾯的<< 和 >>,这⾥引⽤也和取地址使⽤了同⼀个符号&,⼤家注意使⽤⽅法⻆度区分就可以。b,c,d都为a的别名,其中任意一个变化,其余的都会发生变化,且其指向的地址相同。1.引用的特性。

2025-04-21 21:36:43 776

原创 C++入门----day_one

一,命名空间一,命名空间namespace的价值在C/C++中,变量、函数和后⾯要学到的类都是⼤量存在的,这些变量、函数和类的名称将都存在于全局作⽤域中,可能会导致很多冲突。使⽤命名空间的⽬的是对标识符的名称进⾏本地化,以避免命名 冲突或名字污染,namespace关键字的出现就是针对这种问题的。c语⾔项⽬类似下⾯程序这样的命名冲突是普遍存在的问题,C++引⼊namespace就是为了更好的解决 这样的问题这⾥默认是访问的是全局的rand函数指针。

2025-04-20 21:52:59 497

原创 链表的增删查改

只要不出现&,就是传值调用,传值调用不能修改链表,传值才行。

2025-04-05 18:33:41 168

原创 错题感之常数字符串

而str3与str4为常量字符串,常量字符串的内容是不会被修改的,那么相同的常量字符串存一份就可以了。str1与str2内容虽然相同,但其存储地址是不同, 所以两数组不相等。

2025-04-04 19:29:58 126

原创 轮转数组---探寻最优解

我们最先想到的一般是常规解法,一个一个轮转,但是镶嵌的for循环,其时间复杂度为O(n^2),当数据过大时,会超出时间限制。下述代码还可以改善一下,如果k>=numsSize时,其部分轮转则为无效轮转,可以int time=k%numsSize;这是我自己写的代码,借助另一个数组,其中没有嵌套的循环,时间复杂度为O(n),没有出现超出时间限制的情况,其还有改进的地方,可以减少一个循环的使用,就是比较难想到,如下。那我们应该如何改进呢,方案一空间换时间。连续翻转数组解题同样十分巧妙。

2025-04-04 19:26:46 200

原创 模拟strstr(超简单,详解)

【代码】模拟strstr(超简单,详解)

2025-03-15 21:51:13 95

原创 指针数组与数组指针

指针数组 (Array of Pointers)是一个数组,其中每个元素都是指向某种类型的指针。这意味着该数组中的每一个成员都可以存储不同对象的地址。数组指针 (Pointer to an Array)则是指向整个数组的第一个元素的一个指针。它保存的是这个特定类型的一维或多维数组的位置int main()i< sz;i++)i < sz;i++)j < 5;

2025-03-06 18:34:57 280

原创 扫雷游戏的实现

怎么说呢,扫雷游戏已经是我的二次学习了,第一次没学会,到第二次的昏昏欲睡,结果当然是没有学会,我还是决定熟悉它并学会它。首先是game.h;

2024-12-08 21:23:19 664

原创 const关键字

修饰指针变量时,const的位置决定了是保护指针指向的对象还是保护指针本身不被修改。在右边,指针本身不可变;变量变为不可直接修改,但可以通过指针来修改。修改a时,不可以直接*a=20;而应该先定义一个变量b=20,在通过a=&b来修改。保户指针指向对象不被修改为*p不可赋值修改,可以通过p=&(一个为目的值的变量)修改。const的位置决定了是保护指针指向的对象还是保护指针本身不被修改。保护指针本身不被修改为p取地址修改,可通过*p=目的值,修改。第4种为指针指向对象与指针本身都不被可以被修改。

2024-12-02 16:32:46 257

原创 猜数字小游戏

printf("选择错误,请重新选择");printf("还剩余%d次机会\n",count);printf("退出游戏\n");printf("进入游戏\n");printf("恭喜你,猜对了\n");printf("很遗憾5次机会用完,挑战失败\n");printf("请输入一个1-100的数字\n");printf("猜大了\n");printf("猜小了\n");printf("请选择:\n");case 0://退出游戏。case 1://进入游戏。

2024-12-01 17:08:17 1180

原创 关机小程序

printf("你的电脑将在60秒内关机,输入我是猪,关机倒计时停止\n");if (strcmp(input, "我是猪") == 0)printf("请输入:我是猪,停止关机\n");if (strcmp(input, "我是猪")==0)printf("还算配合,取消关机\n");printf("算你识相\n");printf("时间不多了\n");独自写出来,感觉挺有趣的。方案二while循环。

2024-12-01 15:43:16 736

原创 C语言分支与循环语句总结

二if()else if()else如果有一个成立则后面的不判断。switch(整型表达式)-----其结果必须为整数,否则报错;其中while循环又有do-while()与while()分支语句主要分为if-else语句与switch语句。case (数字)与default可以不按顺序写。如果判断结果为真即非0就成立反之为0则为假;相对而言for循环的循环条件更加清晰明了;switch会从()内的数字行进入。多个if()顺序排列每个都会判断。for循环其中()内应该为整型;if(判断){表达式}

2024-11-30 17:29:21 148

原创 大数运算-------除法

i++)//找到除数与被除数直接的关系;i++)//与加减乘不同,其为正向输入;//求除数并赋值与b[];//求余数,以供上式求除数;while (b[b1] == 0 && b1 < a1)//删除多余的0;这个是高精度除以低精度的除法,相比于高精度除以高精度生活中应用的也更多。

2024-11-27 11:56:01 251

原创 大数运算-------乘法

/前一位加上后一位的进位;j++)//核心三步走,可通过竖乘找到规律。i++)//与加减法相同反向输入到a,b数组。//去余得没有进的位。//注意a*b的长度为a+b与加法和减法不同;if (c[c1] == 0 && c1 > 0)//删去多余的0;i--)//反向输出。

2024-11-27 11:18:58 238

原创 大数运算---------减法

i++)//直接反向操作将a[]b[]数组取反;//三种情况a1>b1,a1<b1,a1=b1;}if (c[c1] == 0 && c1 > 0)//删去数组前头的0;//由于交换了a[]b[]数组 ,添符号使结果为负。i++)//与a<b一样。if (a[i] == b[i])//找到一个更大的数子判断ab数组大小。else if (a1 < b1)//便于计算需将a[]b[]数组交换。减法相比于加法难度大一些,需要判断的有很多,a>b,a<b,a=b的判断;else//a<b,交换a,b;

2024-11-27 11:09:38 460

原创 大数运算------加法

当数据大小超过据类型范围的整数,就需要进行大数运算,首先先将数据以字符串的形式输入,后将字符串转换成数组的形式,通过竖加法将其运算,加时个位在前(位数可能不同),最后反向输出。//定义abc三个数组,便于后续数加;i--)//因为数组是反的所以反向输出;if (c[c1] == 0 && c1 > 0)//cl>0是考虑到0+0的情况。//由于a,b的位数大小可能不同,所以将个位放置于数组开头,便于运算;//如1234------>4321使其对齐相加,后反向输出;//如12345----->54321。

2024-11-26 08:28:22 424

原创 判断字符串长度

strlen:获取字符串的有效长度,不包括'\0'"c:\test\121": 在该字符串中,\t是转移字符,水平制表,,跳到下一个tab的位置;而\121表示一个字符,是讲121看做8进制数组,转换为10进制后的81,作业为ASCII码值的字符,即:字符'Q' ,故上述字符串实际为:"c: estQ",只有7个有效字符“”\后随便接一个数字或一个字母都表示一个字符;其他的以反斜杠加字母的全视为字母本身(例如\c视为c)"ab\t\c\\d\x3d"为8个字节。其中a,b,c,8,6,f为一个字节。

2024-11-25 20:13:03 372

原创 追梦者莫停留

我是来自双飞本科,想在各种大赛中拿国奖,打算三点一线致力于代码的学习,始终相信小比特大梦想,我也有着一个大厂梦-----小米,相信4年的努力,我可以步入小米公司,梦也将从这一天开始。

2024-11-21 15:54:23 158

空空如也

空空如也

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

TA关注的人

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