- 博客(24)
- 收藏
- 关注
原创 C++模板初阶
class 类模板名// 类内成员定义// 类模版public:_size = 0;// 模版不建议声明和定义分离到两个文件.h 和.cpp会出现链接错误,具体原因后面会讲// 扩容++_size;
2025-06-07 11:30:00
949
原创 c/c++内存管理
class Apublic:: _a(a)~A()int main()// new/delete 和 malloc/free最大区别是 new/delete对于【自定义类型】除了开空间还会调用构造函数和析构函数free(p1);delete p2;// 内置类型是几乎是一样的// Cfree(p3);delete p4;free(p5);return 0;注意:在申请自定义类型的空间时,new会调用构造函数,delete会调用析构函数,而malloc与。
2025-06-06 04:15:00
1051
原创 C++类和对象(下)
无论是否显示写初始化列表,每个构造函数都有初始化列表;无论是否在初始化列表显示初始化成员变量,每个成员变量都要走初始化列表初始化;
2025-06-04 03:45:00
922
原创 C++类和对象(中)
目录1. 类的默认成员函数2. 构造函数 3. 析构函数4. 拷贝构造函数 5. 赋值运算符重载5.1 运算符重载5.2 赋值运算符重载5.3 日期类实现Date.h:Date.cpp:Test.cpp:6. 取地址运算符重载6.1 const成员函数6.2 取地址运算符重载默认成员函数就是用户没有显式实现,编译器会自动生成的成员函数称为默认成员函数。一个类,我们不写的情况下编译器会默认生成以下6个默认成员函数,需要注意的是这6个中最重要的是前4个,最后两个取地址重载不重要,我们稍微了
2025-06-02 05:15:00
744
原创 函数递归和迭代
函数不返回,函数对应的栈帧空间就⼀直占⽤,所以如果函数调⽤中存在递归调⽤的话,每⼀次递归函数调⽤都会开辟属于⾃⼰的栈帧空间,直到函数递归不再继续,开始回归,才逐层释放栈帧空间。所以递归的思考⽅式就是把⼤事化⼩的过程。当我们n输⼊为50的时候,需要很⻓时间才能算出结果,这个计算所花费的时间,是我们很难接受的,这也说明递归的写法是⾮常低效的,那是为什么呢?事实上,我们看到的许多问题是以递归的形式进⾏解释的,这只是因为它⽐⾮递归的形式更加清晰,但是这些问题的迭代实现往往⽐递归实现效率更⾼。
2025-05-06 09:00:00
1047
原创 C语言函数
了解了库函数,我们的关注度应该聚焦在⾃定义函数上,⾃定义函数其实更加重要,也能给程序员写代码更多的创造性。⼀般我们在使⽤函数的时候,直接将函数写出来就使⽤了。⽐如:我们要写⼀个函数判断⼀年是否是闰年。上⾯代码中橙⾊的部分是函数的定义,绿⾊的部分是函数的调⽤。这种场景下是函数的定义在函数调⽤之前,没啥问题。
2025-05-04 10:30:00
734
原创 c语言“数组”
数组是⼀组相同类型元素的集合;从这个概念中我们就可以发现2个有价值的信息:• 数组中存放的是1个或者多个数据,但是数组元素个数不能为0。• 数组中存放的多个数据,类型是相同的。数组分为⼀维数组和多维数组,多维数组⼀般⽐较多⻅的是⼆维数组。
2025-05-03 14:00:00
842
原创 C语言简单猜数字游戏
游戏要求:1. 电脑⾃动⽣成1~100的随机数2. 玩家猜数字,猜数字的过程中,根据猜测数据的⼤⼩给出⼤了或⼩了的反馈,直到猜对,游戏结束。
2025-05-02 10:45:00
2575
原创 c语言中分支和循环语句
C语⾔是结构化的程序设计语⾔,这⾥的结构指的是顺序结构、选择结构、循环结构,C语⾔是能够实现这三种结构的,其实我们如果仔细分析,我们⽇常所⻅的事情都可以拆分为这三种结构或者这三种结构的组合。我们可以使⽤ if 、 switch 实现分⽀结构,使⽤ for 、 while 、 do while 实现循环结构。表达式成⽴(为真),则语句执⾏,表达式不成⽴(为假),则语句不执⾏也就是表达式的结果如果是0,则语句不执⾏,表达式的结果如果不是0,则语句执⾏。输⼊⼀个整数,判断是否为奇数。
2025-05-01 13:12:33
994
原创 c++类和对象
• class为定义类的关键字,Stack为类的名字,{}中为类的主体,注意类定义结束时后⾯分号不能省略。类体中内容称为类的成员:类中的变量称为类的属性或成员变量;类中的函数称为类的⽅法或者成员函数。• 定义在类⾯的成员函数默认为inline。• C++中struct也可以定义类,C++兼容C中struct的⽤法,同时struct升级成了类,明显的变化是struct中可以定义函数,⼀般情况下我们还是推荐⽤class定义类。
2025-04-30 22:33:00
618
原创 c++入门基础(下)
引⽤不是新定义⼀个变量,⽽是给已存在变量取了⼀个别名,编译器不会为引⽤变量开辟内存空间, 它和它引⽤的变量共⽤同⼀块内存空间。⽐如:⽔壶传中李逵,宋江叫"铁⽜",江湖上⼈称"⿊旋 ⻛";林冲,外号豹⼦头;类型& 引⽤别名=引⽤对象;C++中为了避免引⼊太多的运算符,会复⽤C语⾔的⼀些符号,⽐如前⾯的>,这⾥引⽤也和取 地址使⽤了同⼀个符号&,⼤家注意使⽤⽅法⻆度区分就可以。(吐槽⼀下,这个问题其实挺坑的,个 ⼈觉得⽤更多符号反⽽更好,不容易混淆)int main()int a = 0;
2025-04-24 09:45:00
985
原创 C++入门基础
• 定义命名空间,需要使⽤到namespace关键字,后⾯跟命名空间的名字,然后接⼀对{}即可,{}中即为命名空间的成员。命名空间中可以定义变量/函数/类型等。• namespace本质是定义出⼀个域,这个域跟全局域各⾃独⽴,不同的域可以定义同名变量,所以下⾯的rand不在冲突了。• C++中域有函数局部域,全局域,命名空间域,类域;域影响的是编译时语法查找⼀个变量/函数/类型出处(声明或定义)的逻辑,所有有了域隔离,名字冲突就解决了。局部域和全局域除了会影响。
2025-04-17 12:30:00
2192
原创 数据结构之链表
概念:链表是⼀种物理存储结构上⾮连续、⾮顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。淡季时⻋次的⻋厢会相应减少,旺季时⻋次的⻋厢会额外增加⼏节。只需要将⽕⻋⾥的某节⻋厢去掉/加上,不会影响其他⻋厢,每节⻋厢都是独⽴存在的。在链表⾥,每节“⻋厢”是什么样的呢?
2025-04-13 14:00:00
371
原创 数据结构之顺序表
线性表(linearlist)是n个具有相同特性的数据元素的有限序列。线性表是⼀种在实际中⼴泛使 ⽤的数据结构,常⻅的线性表:顺序表、链表、栈、队列、字符串...线性表在逻辑上是线性结构,也就说是连续的⼀条直线。但是在物理结构上并不⼀定是连续的, 线性表在物理上存储时,通常以数组和链式结构的形式存储。
2025-04-12 20:12:37
285
原创 数据结构之复杂度
数据结构(Data Structure)是计算机存储、组织数据的⽅式,指相互之间存在⼀种或多种特定关系的数据元素的集合。没有⼀种单⼀的数据结构对所有⽤途都有⽤,所以我们要学各式各样的数构,如:线性表、树、图、哈希等。
2025-04-12 19:49:18
1088
原创 C语⾔数据类型和变量
printf()的作⽤是将参数⽂本输出到屏幕。它名字⾥⾯的f代表format(格式化),表⽰可以定制输出⽂本的格式。return 0;上⾯命令会在屏幕上输出⼀⾏⽂字“HelloWorld”。printf() 不会在⾏尾⾃动添加换⾏符,运⾏结束后,光标就停留在输出结束的地⽅,不会⾃动换⾏。为了让光标移到下⼀⾏的开头,可以在输出⽂本的结尾,添加⼀个换⾏符\n。return 0;return 0;printf() 是在标准库的头⽂件 stdio.h 定义的。
2025-04-04 11:15:00
964
原创 C语言常见概念
在VS上写代码,我们是需要创建项⽬的,直接新建项⽬就可以了。在项⽬中就可以添加源⽂件和头⽂件。C语⾔把 .c 为后缀的⽂件称为源⽂件,把 .h 为后缀的⽂件称为头⽂件。头⽂件和源⽂件在VS中展⽰头⽂件和源⽂件在磁盘上C语⾔中有⼀批保留的名字的符号,⽐如: 字。int 、 if 、 return ,这些符号被称为保留字或者关键• 关键字都有特殊的意义,是保留给C语⾔使⽤的• 程序员⾃⼰在创建标识符的时候是不能和关键字重复的• 关键字也是不能⾃⼰创建的。
2025-04-03 02:14:16
850
原创 C语言⾃定义类型:结构体
位段的声明和结构是类似的,有两个不同:1. 位段的成员必须是 int、unsigned int 或signed int ,在C99中位段成员的类型也可以选择其他类型。2. 位段的成员名后边有⼀个冒号和⼀个数字。int _b:5;int _c:10;int _d:30;A就是⼀个位段类型。那位段A所占内存的⼤⼩是多少?1. 位段的成员可以是 int unsigned int signed int 或者是 char 等类型。
2025-03-28 12:15:00
793
原创 c语言中编译和链接
在 ANSI C 的任何⼀种实现中,存在两个不同的环境。第1种是翻译环境,在这个环境中源代码被转换为可执⾏的机器指令(⼆进制指令)。第2种是执⾏环境,它⽤于实际执⾏代码。
2025-03-26 10:30:00
1835
原创 字符函数和字符串函数
在编程的过程中,我们经常要处理字符和字符串,为了⽅便操作字符和字符串,C语⾔标准库中提供了⼀系列库函数,接下来我们就学习⼀下这些函数。
2025-03-15 20:11:24
625
原创 指针了解以及深入
1.1内存在讲内存和地址之前,我们想有个⽣活中的案例: 假设有⼀栋宿舍楼,把你放在楼⾥,楼上有100个房间,但是房间没有编号,你的⼀个朋友来找你玩, 如果想找到你,就得挨个房⼦去找,这样效率很低,但是我们如果根据楼层和楼层的房间的情况,给 每个房间编上号,如:指针就跟房间号一样有了房间号你能快速找得到房间;有了指针就能快速找到内存;如果把上⾯的例⼦对照到计算机中,⼜是怎么样呢?
2025-03-09 18:04:02
980
原创 c语言实现扫雷游戏
因为我们需要在9*9的棋盘上布置雷的信息和排查雷,我们⾸先想到的就是创建⼀个9*9的数组来存放。个坐标就会越界,为了防⽌越界,我们在设计的时候,给数组扩⼤⼀圈,雷还是布置在中间的9*9的坐。⼀个位置后,这个坐标处不是雷,这个坐标的周围有1个雷,那我们需要将排查出的雷的数量信息记录。扫雷的过程中,布置的雷和排查出的雷的信息都需要存储,所以我们需要⼀定的数据结构来存储这些。存储,并打印出来,作为排雷的重要参考信息的。突了,但是这样做棋盘上有雷和⾮雷的信息,还有排查出的雷的个数信息,就⽐较混杂,不够⽅便。
2025-03-01 22:11:11
704
原创 一个人编程开始路途
我相信各位下载csdn的各位用户,无疑对学习计算机语言有着浓厚的兴趣,但兴趣必须要持久,我见到过许许多多半途而废的人,一旦学到循环语句便吓退了自己。学完基本的语法后我们可以尝试做一些小项目,从最初的简单计算器,到后面扫雷小游戏,在到后面贪吃蛇小游戏,随着项目的难度增加,我们自身的实力也在不断的增加,这是进步的证明。5. 中期(6个月 左右),我想要深入理解数据结构和算法,能够运用这些知识优化我的代码,并且可以参与一些小型的开源项目,与其他开发者合作,提高自己的团队协作能力。《六》每周学习的时间;
2025-01-02 22:55:46
441
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅