- 博客(67)
- 收藏
- 关注
原创 C的程序环境和预处理
这些预定义符号都是语言内置的。举个栗子:FILELINE语法:1000register//为 register这个关键字,创建一个简短的名字for;;# define MAX 1000 # define reg register //为 register这个关键字,创建一个简短的名字 # define do_forever for(;;) //用更形象的符号来替换一种实现 # define CASE break;case //在写case语句的时候自动把 break写上。
2024-07-19 22:10:24
607
原创 08day_C++模板(初阶)
class 类模板名// 类内成员定义//类模板public:, _size(0){}~Stack()private:T* _array;//类外生命成员函数也要加模板,否则编译器不认识//直接new异地扩,再拷贝过来//释放原来的空间++_size;
2024-07-18 09:14:05
760
原创 07day-C++内存管理
int main()//new/delete和malloc/free最大的区别就是new/delete对于【自定义】类型//除了开空间还会调用构造与析构函数//调用构造//调用析构//内置类型是几乎是一样的free(p3);delete p4;//数组中的每个元素都会调用一次构造与析构free(p5);delete[]p6;return 0;注意。
2024-07-17 08:53:35
1246
原创 指针(初阶)
指针变量,用来存放地址的变量。(存放在指针中的值都被当成地址处理)。那这里的问题是:一个小的单元到底是多大?(1个字节)如何编址?经过仔细的计算和权衡我们发现一个字节给一个对应的地址是比较合适的。对于32位的机器,假设有32根地址线,那么假设每根地址线在寻址的时候产生高电平(高电压)和低电平(低电压)就是(1或者0);那么32根地址线产生的地址就会是:这里就有2的32次方个地址。
2024-07-16 11:24:41
737
原创 C文件操作
磁盘上的文件是文件。但是在程序设计中,我们一般谈的文件有两种:程序文件、数据文件(从文件功能的角度来分类的)。根据文件指针的位置和偏移量来定位文件指针。
2024-07-15 14:58:01
932
原创 06day-C++类和对象(下)
• 尽量使⽤初始化列表初始化,因为那些你不在初始化列表初始化的成员也会⾛初始化列表,如果这个成员在声明位置给了缺省值,初始化列表会⽤这个缺省值初始化。• 之前我们实现构造函数时,初始化成员变量主要使⽤函数体内赋值,构造函数初始化还有⼀种⽅式,就是初始化列表,初始化列表的使⽤⽅式是以⼀个冒号开始,接着是⼀个以逗号分隔的数据成员列表,每个"成员变量"后⾯跟⼀个放在括号中的初始值或表达式。• 引⽤成员变量,const成员变量,没有默认构造的类类型变量,必须放在初始化列表位置进⾏初始化,否则会编译报错。
2024-07-14 13:33:20
1274
原创 05day--C++日期类的实现与取地址运算符的重载
• const实际修饰该成员函数隐含的this指针,表明在该成员函数中不能对类的任何成员进⾏修改。const 修饰Date类的Print成员函数,Print隐含的this指针由 Date* const this 变为 const Date* const this。• 将const修饰的成员函数称之为const成员函数,const修饰成员函数放到成员函数参数列表的后⾯。取地址运算符重载分为普通取地址运算符重载和const取地址运算符重载,⼀般这两个函数编译器⾃动。⽣成的就可以够我们⽤了,不需要去显⽰实现。
2024-07-13 19:27:27
473
原创 04day-C++类与对象(中)
析构函数与构造函数功能相反,析构函数不是完成对对象本⾝的销毁,⽐如局部对象是存在栈帧的,函数结束栈帧销毁,他就释放了,不需要我们管,C++规定对象在销毁时会⾃动调⽤析构函数,完成对象中资源的清理释放⼯作。我们不写,编译器默认⽣成的构造,对内置类型成员变量的初始化没有要求,也就是说是是否初始化是不确定的,看编译器。构造函数是特殊的成员函数,需要注意的是,构造函数虽然名称叫构造,但是构造函数的主要任务并不是开空间创建对象(我们常使⽤的局部对象是栈帧创建时,空间就开好了),⽽是对象实例化时初始化对象。
2024-07-12 18:16:46
1841
原创 03day-C++类和对象
• class为定义类的关键字,Stack为类的名字,{}中为类的主体,注意类定义结束时后⾯分号不能省略。类体中内容称为类的成员:类中的变量称为类的属性或成员变量;类中的函数称为类的⽅法或者成员函数。• 为了区分成员变量,⼀般习惯上成员变量会加⼀个特殊标识,如成员变量前⾯或者后⾯加_ 或者 m开头,注意C++中这个并不是强制的,只是⼀些惯例,具体看公司的要求。
2024-07-11 15:13:21
737
原创 02day-C++学习(const 指针与引用的关系 inline nullptr)
注意事项• 可以引⽤⼀个const对象,但是必须⽤const引⽤。const引⽤也可以引⽤普通对象,因为对象的访问权限在引⽤过程中可以缩⼩,但是不能放⼤。• 不需要注意的是类似 int& rb = a3;这样⼀些场景下a3的和结果保存在⼀个临时对象中, int& rd = d 也是类似,在类型转换中会产⽣临时对象存储中间值,也就是时,rb和rd引⽤的都是临时对象,⽽C++规定临时对象具有常性,所以这⾥就触发了权限放⼤,必须要⽤常引⽤才可以。
2024-07-09 23:01:20
585
原创 01day C++初入学习
在C/C++中,变量、函数和后⾯要学到的类都是⼤量存在的,这些变量、函数和类的名称将都存在于全局作⽤域中,可能会导致很多冲突。使⽤命名空间的⽬的是对标识符的名称进⾏本地化,以避免命名冲突或名字污染,namespace关键字的出现就是针对这种问题的。c语⾔项⽬类似下⾯程序这样的命名冲突是普遍存在的问题,C++引⼊namespace就是为了更好的解决这样的问题int main()// 编译报错:error C2365: “rand”: 重定义;以前的定义是“函数”return 0;
2024-07-08 18:23:48
701
原创 --继承的使用--
此些截图都是来源于黑马程序员,我也只是把写文章当作我自己的笔记而已哈,所以写到我自己能够理解的程度就可以了。4.继承中同名静态成员处理(静态成员可以通过类名来访问父类)3.继承中的构造和析构顺序。继承中的同名成员处理。
2024-04-28 18:06:23
451
原创 运算符重载(1)
/如果这里用引用的话&operator++,这里会返回局部变量的引用,该函数调用完后temp被释放,后面再解引用后会造成非法操作了。//这里cout的函数类型是ostream,这里cout前加引用是为了保证cout的唯一,引用即给cout起别名的意思。//其实本质就是不用引用返回,每次返回的就是一个新对象,拷贝调用原则。//为了能够连续cout
2024-04-28 01:45:50
324
原创 友元函数(全局 类 成员函数)
我在敲这个代码时有一个思考,为什么一定要用指针呢,我又没有要改变变量的值,所以我去掉了指针,结果出现了超前引用的问题。cout
2024-04-27 00:49:15
556
原创 【无标题】getchar gets scanf
例如输入为"\nhello\n",也就是说,先输入一个空行,然后在第二行输入"hello"并回车。scanf按照它的读取原理,把第一个’\n’作为空白符忽略掉,然后读取字符串"hello",遇到第二个’\n’时输入结束,但是第二个’\n’会被scanf残留在缓冲区里。当用gets进行读取时,它遇到第一个’\n’,就找到了它的输入分隔符,停止继续输入,第一个’\n’被从缓冲区中读走了,缓冲区里剩下"= '\n')//不断接收字符,直到接收到'\n'!printf("请确认密码->Y/N\n");
2024-04-26 23:16:16
833
原创 相交链表的判断(leetcode)
思路二 :先不顾两条链表的长短,先走到尾结点的链表跳到另外一个链表的头节点,这样也实现了先走差距步的效果。两条链表难免会出现长度不一样的情况,先让长的链表先走差距步。思路一:先判断两个链表的最后一个结点是否相同,若相同,则会有结点。来自力扣题解中一位大神的思路!
2024-04-25 10:31:44
705
原创 链表的回文结构
将逆置后的链表与未逆置的链表挨个比较,若不同,则不对称。只要走到rmid或者A下一个结点为空时结束比较。这就是找链表中间结点,与逆置的结合问题。回文结构就是判断这个链表是不是对称的。右奇数链表的对称,也有偶数链表的对称。
2024-04-24 20:19:00
190
原创 反转链表(力扣)
步骤:将n2的next指向n1,再n1放到n2的位置,n2放到n3的位置,循环到最后一个指针的指向反转,此时n2为空,n3为未知区域,因此再n3移动时,要加一个if语句判空,不然代码会出现错误,最后头节点变为了n1,因此时返回n1结点。n1置空,n2置为头节点,n3置为头节点的下一个节点。思路:设三个指针,画图求解。
2024-04-24 18:28:48
380
原创 轮转数组(力扣)
时间复杂度(往往考虑最坏的情况)为O(n^2) (最坏情况下 K*M =(N-1)*N)先前n-k个逆置,在后k个逆置,最后整体逆置。
2024-04-24 10:45:15
552
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人