- 博客(39)
- 收藏
- 关注
原创 C语言复习--assert断言
所以在 VS 这样的集成开 发环境中,在 Release 版本中,直接就是优化掉了.这样在debug版本写有利于程序员排查问题, 在 Release 版本不影响⽤⼾使⽤时程序的效率.代码在程序运⾏到这⼀⾏语句时,验证变量 p 是否等于 NULL。如果确实不等于 NULL ,程序继续运⾏,否则就会终⽌运⾏,并且给出报错信息提⽰.,在标准错误 流 stderr 中写⼊⼀条错误信息,显⽰没有通过的表达式,以及包含这个表达式的⽂件名和⾏号.然后,重新编译程序,编译器就会禁⽤⽂件中所有的 assert() 语句.
2025-04-01 22:08:42
256
原创 C语言复习笔记--操作符详解(下)
/变量的定义int m;int n;}p2, p3;//初始化//用.可以指定初始化,不需要加上结构体的名字//也可以直接初始化(不要忘记=)//如果内部嵌套了另一个结构体,要再加一个{}去初始化.
2025-03-29 22:59:40
1325
原创 C++string类使用
也算是半只脚进入了stl的学习了,今天就让我们参考string的文档介绍来学习使用string吧这篇中部分涉及到auto的使用,如果不记得了可以看下这篇博客,里面有auto在下面的用法讲解~.在使用string类时,必须包含#include头文件以及using namespace std.
2025-03-28 23:30:00
765
原创 C语言复习笔记--操作符详解(上)
大家好哦!晚间时间,有到了写博客的时间.今天简单的复习下操作符,下面进入正题~ 话不多说,大家看图: 以上的操作符,我们已经讲过算术操作符、赋值操作符、逻辑操作符、条件操作符和部分的单⽬操作符.下面在学习一部分.操作符中有⼀些操作符和⼆进制有关系,但是二进制部分比较基础,就不过多写了.但是在这里补充下原码、反码、补码这部分内容. 整数的2进制表方法法有三种,即原码、反码和补码. 有符号整数的三种表⽰⽅法均有符号位和数值位两部分,2进制序列中,最高位的1位是被当做符号
2025-03-27 21:39:01
1188
原创 C语言复习笔记--函数栈帧创建与销毁
第一行是指将ebp-14h这个位置上的值放入eax寄存器中,根据上面已经讲解过的指令可以得知ebp-14h这个位置就是存储b的位置,紧接着的指令是将eax压栈.所以这两句指令是指将b的值拷贝一份后压入栈顶,这两行的下两行与这两行相似,是将a的值拷贝一份后压入栈顶.进行之后的栈类似于下面图片.下面就到了call指令,call指令是调用函数的指令.call指令执行之后会跳转到call后面的地址所示的指令,并且将call后面紧跟着的指令地址压栈(方便表用后的返回).
2025-03-26 17:07:47
809
原创 C++模板初阶
class 类模板名// 类内成员定义其实现实中模板函数的的运用并没有模板类多,那在什么时候要用模板类呢?在C语言中一个数据结构中只能存同一类的元素.如果想用同一个数据结构产生两个不同类型的栈,那么在C语言中只能实现两个栈.可是两个栈中的方法都是相同的,这就让我们想到了模板.简单的模板类可以看下面代码.模板不建议声明和定义分离在不同文件中.在同一文件中分离时要像下面代码一样写明模板,要不然编译器在定义自中无法识别T.// 类模版public:_size = 0;
2025-03-24 22:28:43
766
原创 补充内存管理中的定位new
new (place_address) type或者new (place_address) type(initializer-list)下面看一些代码和注释来深入了解一下(因为还没有学习内存池的内容,所以暂时用operator new来开空间.因为内存池分配出的内存没有初始化,所以如果是自定义类型的对象,需要使用new的定义表达式进行显示调构造函数进行初始化.以上就是我学习的定位new的内容啦.initializer-list是类型的初始化列表。place_address必须是一个指针。
2025-03-24 21:00:35
125
原创 C语言复习笔记--VS调试技巧
bug本意是“昆⾍”或“⾍⼦”,现在⼀般是指在电脑系统或程序中,隐藏着的⼀些未被发现的缺陷或 问题,简称程序漏洞.对于他的出现有一个有意思的小故事.“Bug” 的创始⼈格蕾丝·赫柏(Grace Murray Hopper),她是⼀位为美国海军⼯作的电脑专家, 1947年9⽉9⽇,格蕾丝·赫柏对Harvard Mark II设置好17000个继电器进⾏编程后,技术⼈员正在进⾏ 整机运⾏时,它突然停⽌了⼯作。
2025-03-23 21:13:15
621
原创 C语言复习笔记--函数
这才是以后我们经常要用到的函数.自定义函数给程序员更多的创造性.⼀般我们在使⽤函数的时候,直接将函数写出来就使⽤了.但是如果我们将函数的定义放在函数的调⽤后边,在编译时就会出现禁告.这是因为C语⾔编译器对源代码进⾏编译的时候,从第⼀⾏往下扫描的,当遇到函数调⽤的时候,并没有发现前⾯有该函数的定义,就会报出警告.那么怎么解决这个问题呢?就是函数调⽤之前先声明⼀下这个函数,声明函数只要交代清楚:函数名,函数的返回类型和函数的参数即可.如下,第一行就是对函数Add的声明.加了声明之后代码就可以正常编译了.
2025-03-22 23:34:31
788
原创 C语言复习-- static和extern
在上一篇中复习了函数,这里单独提一下函数中的最后一个小重点static和extern.static 和 extern 都是C语⾔中的关键字.但是在讲解他们之前要先说下作⽤域和⽣命周期.
2025-03-22 23:33:52
446
原创 C++/C内存管理
也是用一段简单的代码来直接引入.class Apublic::_a(a)~A()private:int _a;上面代码输出的结果如下图.与内置类型不同的是,在自定义类型中,new会在开辟空间之后调用自定义类型的默认构造函数初始化空间,且delete会在释放之前调用析构函数.而malloc和free则只是开辟和释放空间.
2025-03-21 23:12:45
1391
原创 c++类和对象(下篇)下
下面就来补充一下c++雷和对象最后一点内容.首先先补充一下上一篇博客上最后学习的静态成员变量的小练习下面就是题解.灵活的运用了静态成员变量不销毁的特点,建立数组利用构造函数来完成n次相加.下面我们开始今天的学习.
2025-03-19 22:45:29
1041
原创 C语言复习笔记--分支/循环(涉及到的函数简单介绍)
这个函数是用于因为有隐式类型转换的存在,也可以用于求int类的平方根.如果将sqrt直接用于printf的函数内要记得用%lf占位符来占位,用%d的话会因为整形与浮点型储存不同导致错误.rand与srand。
2025-03-12 20:08:58
361
原创 C语言复习笔记--分支/循环(下)
在上一篇复习笔记中,主要了解了分支和部分操作符.这篇我将主要记录下循环的内容,还有一个小练习去运用下所复习的分支循环这部分~
2025-03-12 19:29:46
719
原创 C语言复习笔记--分支/循环(上)
:逻辑取反运算符(改变单个表达式的真假).&& :与运算符,就是并且的意思(两侧的表达式都为真,则为真,否则为假).|| :或运算符,就是或者的意思(两侧⾄少有⼀个表达式为真,则为真,否则为假).经典练习:闰年的判断int main()int year;
2025-03-11 22:07:59
852
原创 c++类和对象中篇(补充)
在之前的其他两篇文章中已经介绍了大部分默认成员函数的内容了.这篇就是上次说道的小篇幅介绍其他两个默认成员函数的博客啦~在这之前的两篇的传送门放在下面啦.那么我们进入今天的学习.
2025-03-11 19:32:33
351
原创 c++中关于.*的简单了解
关于.*的使用已经在上述代码的注释中做了简要的说明,要注意pf并不是A中的成员,它是全局中定义的A中成员函数的指针.所以.*不可以拆解开看,要合在一起去看.其实.*这个操作符在日常运用一定也不多,但是既然在不可以重载的操作符中提到了就通过一段小代码让我们来了解一下它.
2025-03-10 19:31:55
130
原创 c++引用中的权限问题
对于c++中的引用权限的主要规则大家应该都特别熟悉了,总结下来就是,用const来控制,,所以如果用不加const的引用那就会将权限放大.为了保证权限缩小或一致必须要用const修饰的引用.但是在我写代码的时候遇到了这两种情况.也是有关于引用的权限问题,所以拿来记录一下.如上面代码和图片所示,只有用const修饰后才可以正常运行.如上面代码和图片所示,只有用const修饰后才可以正常运行.
2025-03-09 19:54:57
162
原创 c++类和对象(上篇)
要想定义一个类首先就要了解类的定义格式,下面我将用c++重写下c语言中写过的Stack来简述一下c++中类的定义格式.public:_top = 0;cout << "初始化失败" << endl;cout << "扩容失败" << endl;_st = ptr;_top++;cout << "栈空" << endl;void Pop()cout << "栈空" << endl;_top--;free(_st);_top = 0;
2025-03-08 20:58:39
684
原创 c++入门(下
引用以 类型名& 引用别名=引用对象 这种方式定义(这里&也是C语言中取地址的符号,c++为了减少符号数量选择给C语言中的符号一个新的含义int main()int a = 0;int& b = a;//b为a的引用////d为c的引用。
2024-12-14 23:45:14
1138
原创 为什么c语言不支持函数重载而c++支持呢
当函数声明与定义分开时,经过预处理后,包含函数的声明的头文件在每个包含他的文件中打开,生成不同的文件,这几个文件在经过编译,汇编形成新的文件,而编译汇编都是单线程过程,因为函数声明与定义分开,所以在调用函数的测试程序的最终文件中并不包含函数的声明(也就是函数的地址).在学习过程中突然想到了的小问题,经过一些深入了解得到了这个问题简单的答案.因为c语言在函数声明与定义分开时,在链接的过程中只依靠原本的函数名去寻找函数的地址,而c++在连接时则是用修饰过后的函数名去寻找函数的地址.
2024-12-13 22:57:42
242
原创 C++入门(上
用namespace关键字加命名空间的名字即可,例如int rand=0;//...//调用bit::rand;如上所示就建立了一个名为bit的命名空间,在这里的rand不会与<stdlib.h>中的函数rand冲突.因为namespace创造了一个域,将namespace里定义的东西隔离开来,从而解决了名字冲突问题.若想要调用该命名空间的东西需要用::,例如上述最后一行但万一namespace的名字也重复了,它还可以进行嵌套定义,例如int rand=0;
2024-12-13 22:26:59
711
原创 C语言之旅-函数及数组运用 简易扫雷
相信大家都玩过扫雷游戏~那么今天就来说说用之前的一些知识来用C语言写一个简单9*9的扫雷小游戏吧。(我学习的还不够深入,所以小游戏还有很多不成熟的地方(/ω\))
2023-10-31 23:24:12
187
5
原创 C语言之旅-printf()与scanf()
道阻且长,行则将至,今天也要努力学习哇✧٩(ˊωˋ*)و✧printf()与scanf()都为输入输出函数,它们也都是库函数,所以在使用时都要引用头文件<studio.h>。
2023-10-14 12:56:51
122
1
原创 C语言之旅-数据类型和变量
以上说的4种类型分别占用空间为2、4、4或8(规定long的长度只要>=int即可,没有明确规定大小)、8字节。算数操作符有5个,+、-、*、/、%,+,-,*都很熟悉。%是两数相除后的余数,只适用于整型的计算,如果计算中出现负数这结果符号看%前那个数的符号。 还有一个强制类型转换,如果想把3.14转为整数类型则可在其前面加(int),转换不遵循四舍五入直接舍弃小数点后的部分,不过通常不建议使用。(补充:signed表示定义的数据为有符号的,unsigned表示无符号的。
2023-10-13 17:18:07
122
原创 C语言之旅-开篇宣言
念念不忘,必有回响”,我想做什么事最重要的就是坚持,很喜欢《暴走邻家》里小菲的“我没有什么突出的能力,但我能够保证我会坚持不懈!都说学习最快的方法就是讲出来,所以在学习的同时我也会持续的写博客来记录我所学的知识。当然学习的最终目的是就业,我深知我在对自己就业方面的思考还有很多不足,我今后还会了解专业的就业方向,找到自己适合的方向并规划好自己的大学生活。最后用我很喜欢的话激励一下自己“不是所有的坚持都有结果,但总是有一些坚持,能从一寸冰封的土地里,培育出十万多怒放的蔷薇”,愿我们都能怒放。
2023-10-11 11:28:33
216
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人