- 博客(24)
- 收藏
- 关注
原创 内存管理(知识点)
c语言中动态内存管理方式 malloc\calloc\realloc\freec++内存管理方式c++兼容c语言所以c语言中的方式也可以使用 但是用起来太麻烦所以通过new和delete操作符竞选动态内存管理。
2024-07-20 20:59:03 283
原创 类和对象(3 结尾
之前实现构造函数时,初始化成员变量主要使用函数体内赋值, 构造函数初始化还有一种方法–初始化列表1 初始化列表的使用方式是以一个冒号开始,接着是一个以逗号分隔的数据成员列表,每个成员变量后面跟一个括号,括号里可以放初始值或表达式如2 每个成员变量在初始化列表中只能出现一次,语法理解上初始化列表可以认为是每个成员变量定义初始化的地方3 引用成员变量,const成员变量,没有默认构造的类类型变量,必须放在初始化列表位置进行初始化,否则会编译报错。
2024-07-14 14:21:34 715 1
原创 类和对象(2
续上文中的运算符重载4 重载++运算符时,有前置和后置的++,运算符重载的函数名都是operator++, 无法很好区分所以c++规定,后置++重载时,增加一个int形参 与前置++做区分5 重载<<和>>时需要重载为全局函数, 因为重载为成员函数时, this指针默认抢占了第一个形参位, 第一个形参位是左侧运算对象,调用时变成了对象<<cout不符合使用习惯和可读性重载为全局函数吧ostream\istream 放在第一个形参位就可以了,此时第二个形参位就是当前类的类对象。
2024-07-13 23:02:41 365 2
原创 类和对象(1)
class为定义类的关键字,stack为类的名字,{}中的为主体类体中内容称为类的成员;类中的变量称为类的属性或成员变量;类中的函数被称为类的方法或成员函数//;不能省略为了区分成员变量, 一遍习惯对成员变量加上一个特殊标识 ,如成员变量前面或后面加_ 或者m开头*(在c++中这个要求不强制,至少惯例)c++中struct也可以定义类, c++兼容c中struct的用法 , 同时struct升级成了类(在c++中struct里也可以定义函数)但还是推荐用class。
2024-07-11 09:58:32 723 1
原创 c++入门小知识(笔记)
namespace name — c++命名空间 本质的定义一个域 (只能在全局定义, 也可以嵌套定义):: 域作用限定符(如果不加就是默认查找全局)例如: nama :: rand —查找name域中的值c++中的域有 函数局部域, 全局域, 命名空间域, 类域项目工程文件中定义的同名namespace会认为是一个namespace,不会冲突c++的标准库放在一个叫std的命名空间中。
2024-07-08 20:35:14 361
原创 关于二叉树
1,若规定节点的层数为1, 则一颗非空二叉树的第i层上最多有2^(i-1)个节点。若2i+1<n ,左孩子序号: 2i+1 2i+1>=n则无左孩子。若2i+2<n ,右孩子序号: 2i+2 2i+2>=n则无左孩子。2,若规定根节点的层数为1,则深度为h的二叉树的最大节点数是2^h -1。h= log2 (n+1) (log以2为底,n+1为对数)4,若规定根节点的层数是1,具有n个节点的满二叉树的深度为。若i>0,i位置节点的双亲序号为 (i-1)/2。
2024-05-25 00:21:08 144
原创 栈和队列~
https://img-blog.csdnimg.cn/direct/910a999c82704f5495c1eecfe9a42ee0.jpeg
2024-05-12 23:55:48 172 1
原创 环形链表入环的第一个节点
fast走的路程为 L+ x*C+N (至少走了一圈, x>=1)slow与fast的相遇点与入环点的距离为N。从头结点开始到入环第一个节点的距离为 L。想得出环形链表入环的第一个节点可假设。*** 环形链表详情见上一篇。slow走的路程为 L+N。快慢指针有2倍关系则可设。
2024-04-28 23:11:07 221 3
原创 环形链表的判断
判断一个链表是不是环形链表可以设置快慢指针来判断当慢指针做到一半时快指针走到结尾若下一步不为空则说明进入环,随后快慢指针继续做等两者相遇时则可说明此链表为环形链表。
2024-04-28 22:54:57 117 3
原创 贪吃蛇小游戏
int ch = 0;doprintf("再来⼀局吗?(Y/N):");getchar();//清理\nint main()//修改当前地区为本地模式,为了⽀持中⽂宽字符的打印//测试逻辑test();return 0;最后的总代码snake.c1//设置光标的坐标//设置标准输出上光标的位置为poswprintf(L"欢迎来到贪吃蛇⼩游戏");//让按任意键继续的出现的位置好看点wprintf(L"用方向键操控");
2024-04-19 16:08:09 287
原创 C语言程序编译和链接
预处理器将这些指令替换为相应的内容,生成一个预处理后的文件(通常以.i或.ii为后缀)。C语言程序的编译和链接过程涉及多个阶段和工具,每个阶段都有其特定的作用。通过掌握编译和链接的原理,我们可以更有效地利用编译器和链接器的功能,提高程序的性能和可维护性。在编译阶段,编译器(Compiler)将预处理后的文件转换成目标文件(通常以.o或.obj为后缀)。在C语言编程中,编译和链接是两个至关重要的步骤,它们共同确保了源代码从编写到最终可执行文件的顺利转换。链接过程是将多个目标文件合并成一个可执行文件的过程。
2024-03-26 01:23:42 155
原创 [文件操作]
想要持久化的保存程序就需要使用文件,而文件一般分为两种程序文件 与 数据文件程序文件: 可执行程序即程序运行需要从中读取数据的文件或输出内容的文件数据文件: 数据库的文件。
2024-03-25 23:41:50 1166
原创 结构体初步认识
结构体(struct)是由一系列具有相同类型或不同类型的数据构成的数据集合,也叫结构。结构体和其他类型基础数据类型一样,例如int类型,char类型只不过结构体可以做成你想要的数据类型。以方便日后的使用。在实际项目中,结构体是大量存在的。研发人员常使用结构体来封装一些属性来组成新的类型。由于C语言无法操作数据库,所以在项目中通过对结构体内部变量的操作将大量的数据存储在内存中,以完成对数据的存储和操作。结构体定义:成员定义;}a;可以在定义时创建变量(此时为全局变量)
2024-03-18 23:00:00 187
原创 内存操作函数
与strcpy相似,但memcpy是对内存块进行拷贝,而strcpy只针对字符串从b开始复制c个字节的数据到a的内存位置遇到’\0’不会停下 内存块不能重叠。
2024-03-13 22:57:23 201
原创 指针小笔记
在我们创建变量时,内存会开辟出一个空间来存放这些变量,内存会被划分为一个个内存单元,每个内存单元的大小是一个字节,而每个内存单元都会给一个编号也就是我们的一级指针(平时为了方便就叫做地址)(注:%p是专门用来打印地址的)
2024-03-05 00:12:26 1011
原创 C语言分支与循环语句注意点
根据if()中的条件进行判断符合执行语句1否则执行语句2,如果后面加上else if()则再看是否符合else if()条件符合执行其中语句,不符合则继续向下执行(if else语句中后面默认只能跟一行语句(在后面加{ }能跟多条语句))根据switch()中的条件选择其中对应的表达式执行(如果每个选项后不加break则会一直向下执行),若都不符合则运行deflault中的语句。for循环中表达式1定义初始的值,表达式2是次循环的判断方式,表达式3为改变值(for循环的判断省略的话条件恒成立)
2024-01-23 22:04:10 349
原创 判断输入的三个数字能否组成三角形(if嵌套switch方法)
直角三角形再添加个a^2+b^2=c^2的条件在后面(else之前)就好了,用else if()添加。这里就写了等腰和等边两种判断的方式。
2024-01-21 21:37:37 570
原创 第一篇博客
在之后的每天拿出1-2个小时来学习c语言相关的知识,并上手尝试自己打代码。打算在熟悉掌握c语言后进行更深的研究以我向往的公司(mhy)为目标加油。在之后的日子里跟随着鹏哥的脚步一步一步的掌握c语言这一门语言。从1-16号开始正式学习c语言。
2024-01-16 19:29:32 373
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人