- 博客(18)
- 收藏
- 关注
原创 2024-1-14 C++薄弱知识点整理
先定义别名,在代码中使用别名,这样,在移植到其他平台时,可以更换原名(用于应对linux和win的,如long等类型的,字节数不一致问题)1)预编译:处理 #开头的命令(#pragma.lib ,#pragma.link例外,这两个属于链接阶段)所有对符号的引用,都要找到该符号定义的地方(例如错误:符号未定义,符号重定义);2.链接过程:编译完成的所有.o文件+静态库文件(.o .a .lib)1)所有.o文件段的合并,符号表合并后进行符号解析。2) .out和 .o文件的异同。
2024-01-14 12:03:16 387 1
原创 2024-1-2 C++薄弱知识点整理
/获取按的是哪个键,与宏定义热键配合使用。(如果有指定整数,就按指定的值来,后面未指定的按当前值逐个增1;否则就是从零开始,逐个增1)可用于声明一组常数,当一个变量有几个固定的可能取值时,可将这个变量定义为枚举类型。例:enum Season{if (_kbhit()) {//敲击键盘。2.热键头文件<conio.h>_kbhit()检测是否敲击键盘。
2024-01-02 19:56:41 389 1
原创 2023-12-31 C++项目薄弱知识点,bug及解决
指定初始化的属性 struct student a = {.name = "Amy",.age = 16}//linux系统支持,vs不支持。c) 宏展开的方式:直接替换,不会进行额外的处理,所以如果要传表达式,记得加上括号。(2)(如果形参用引用的话,使用 . 来调用属性)(3)函数返回结构体,由调用函数的结构体接收。(4)返回引用,调用函数的结构体接收。2)结构体的数组(数组成员是结构体的数组)b) 宏定义的使用:(1)不带参数的宏。
2023-12-31 10:45:54 768
原创 2023-12-29 C++薄弱知识点整理(C++内存部分)(3)
(1) 不要返回函数局部变量或临时变量的地址(该地址如果期间被其他变量征用,会导致结果出现各种不认识的值)注:动态数组初始化:memset(指针,0,元素数量*sizeof(元素类型));//动态内存分配记得归还。在进行一系列的指针操作后,指针可能已经不是最初申请动态内存的首地址了。动态内存也相当于一个数组,可能在对指针多次操作的过程中造成了越界访问。以为在代码运行中指针被赋值了,但是如果程序赋值那步出现了判定错误,没有执行该语句,在下面释放指针时,就会出现错误。申请的动态内存没释放。
2023-12-29 14:54:32 729 1
原创 2023-12-29 C++薄弱知识点整理(C++内存部分)(2)
(3)static(静态变量):全局存在,但是只能在定义其的函数中访问到(作用域范围是从它定义开始往下,上面用不了)中声明为extern变量,可以将全局变量的作用域扩展到声明的那个文件(对全局变量作用域的扩展)1.new和delete是运算符,不是函数,所以执行效率比malloc()和free()高。指针变量 = new 类型[表达式][表达式];static变量分为(1)全局static变量(2)局部static变量。(1)auto(自动变量):函数中所有非静态局部变量(c语言中)
2023-12-29 13:19:56 395 1
原创 2023-12-29 C++薄弱知识点整理(C++内存部分)
4.c语言中动态内存分配用malloc()(该函数包含在头文件中.),malloc返回的地址是void*的,如果要用int*接收,需要强制转化。malloc在内存动态存储区分配一块长度为size字节的连续区域,并返回该区域的首地址。堆区:由程序员分配(动态内存分配),用new分配内存,delete[]释放内存。全局数据区(static):全局变量,静态变量(静态变量的使用区域受到限制)代码区:函数体(类的成员函数,全局函数)的二进制代码。(3)不限于栈区内存,给程序分配更多的内存。
2023-12-29 10:41:46 394 1
原创 2023-12-28 C++项目薄弱知识点,bug及解决
/char*s是函数接收数组的指针,为什么要写成((char*)s)我也不清楚。7.错误 C1088:无法刷新 filetype 文件: “file”: 消息,编译器无法完成某个 I/O 操作。//函数参数中使用指针,传min,max的地址进函数。3.判断是否为英文字符或数字(*p
2023-12-28 18:10:46 376 1
原创 2023-12-28 项目薄弱点,bug及解决方法
解决方法:删掉using namespace std;然后再重输一遍using namespace std;2.#define _CRT_SECURE_NO_WARNINGS要放到。4.cerr<<strerror(errno) 错误信息。1.file.eof() 读到文件尾部。5.break可以跳出while死循环。3.cout提示不明确。
2023-12-28 10:01:26 326 1
原创 C++指针薄弱知识点整理(4)
/(a,b是传进来的实参的别名,函数内操作别名其实就是对实参进行交换)1.引用的定义: 数据类型& 别名 = 原变量名;4)再次使用指针忽略重新赋初值(每次再次使用指针都要重新赋值)常引用的定义:const 数据类型& 别名 = 原变量名;指针引用的用途:可以代替二级指针,将函数内的变量带出。1)引用作为变量的别名存在,在一些场合可以代替指针。两种初始化方式:1)用变量初始化常引用;2)引用相对于指针,有更好的可读性和实用性。引用打印出来的地址和原变量的地址,是一样的)1)使用未初始化的指针。
2023-12-27 16:29:54 356 1
原创 C++指针薄弱知识点整理(3)
其他类型指针都可隐式自动转换为void类型指针,void类型指针如果要转换成其他类型指针,必须强制转换。调用函数(1)(*functionptr)(&x,&y);函数指针可以定义为 int (*functionptr) (const void*,const void*);void* :空类型指针,只存储地址,丢失类型,故无法访问.要访问该值,必须类型转换,再间接引用指针;数组大小:sizeof(数组)/sizeof(数据类型)指针:指针是一个变量,存放指向的变量的在内存中的地址。指针:指针可以相互赋值。
2023-12-27 14:19:52 307 1
原创 C++指针薄弱知识点整理(2)
用途:可以定义一个指针数组,在一大堆数据中挑出一组符合要求的数据,而不必定义繁杂而且不具灵活性的普通变量接收。->数组指针:指向数组的一个指针[强调了(*p)指针]printf(" %d",*((*p)+j));//(*p)是该行数组首地址。1.如果形参中数组的大小不确定(用指针 或没标定长度的数组,作为形参接收数组时),->指针数组:存储一组指针的数组。2.不论是形参用数组还是指针,来接收数组实参,函数内部都可以用数组表示法。3.指针数组:存储指针的数组。
2023-12-27 11:33:33 352 1
原创 C++指针薄弱知识点整理(1)
/静态变量存活周期是整个程序。2)二级指针不但可以将变量通过参数传入函数内部,也可以将函数内部变量传到函数外部。//把一级指针地址传递给二级指针,多在数据结构中应用。1)普通指针可以将变量通过参数传入函数内部,但是没办法将内部变量传出函数。3.使用"指针-指针"可以计算整数数组元素/字符串元素的偏移值;例:void farm(int **farmer){使用16进制打印,把地址值当成一个无符号数处理。(一级指针带出值,二级指针带出地址)strlen(字符数组);
2023-12-26 18:59:29 381 1
原创 2023-12-26 C++薄弱知识整理
用max,min与当前值比较,遍历二维数组后得出最终值,因为max,min是局部变量,所以没法在调用函数后保留值,故在函数内打印,有关max,min的操作在函数内完成定义(注:我现在对指针的应用比较生疏,等指针熟练后可以使用指针接收值,在函数完成后仍可以使用该值)cout << "max是:" << max << "min是:" << min << endl;首先定义max,min,都指向m[0][0],
2023-12-26 12:28:26 332 2
原创 2023-12-25 C++薄弱知识点整理(2)
/从文件中读取并输入数组元素map[i][j]中。//直接进行文件读取操作。3.#include<iomanip>//对输出格式化。//判断文件是否打开失败。setw(4)//设置宽度为4。2.exit(1);//正常结束0,异常结束1。
2023-12-25 19:35:58 392
原创 2023-12-25项目bug及解决
解决方法:定义一个最大不可能超过的二维数组,如int map[64][64];该函数定义本身没有问题,问题出现在我把这个函数定义在了main函数中,"(错误代码c2601)把函数定义放在main函数外解决问题。1)c++不支持变量定义数组行和列。而c++中禁止将函数嵌套定义,使用数组时不要加类型名。
2023-12-25 19:29:21 360
原创 2023-12-25 C++薄弱点知识整理
数组作为函数的参数传递,不是单纯的值传递,传递的是数组本身,二维数组作为函数的参数。1.数组定义时编译器不能确定数组大小(仅定义未初始化时不能省略,有初始化可以省略高维)4.强制用无符号数存储负数,实际存储的值为:该负数+模值。7.变量初始化:全局变量初始化为0,局部变量初始化随机。1)程序可读性差(不能达到见名知意的效果)例:int a[10];5.字符串加法:字符串+字符串=新字符串。1)列未定义,如int a[3][];2)行未定义,如int a[][4];例:int a[3][4];
2023-12-25 14:54:51 361
原创 2023-12-13 C++项目知识点
3.播放音乐命令:mciSendString("play speech.mp3 repeat",0,0,0);2.加载库文件: #pragma comment(lib,"winmm.lib")注:1)如果音频文件不在当前文件夹需写明路径;2)repeat表示重复播放。1.头文件
2023-12-13 19:04:45 347
原创 2023-12-12 C++项目相关复盘
解决方法:经各种修改无效后发现,之前输出的图形界面没关,导致无法正常调试或在图形界面中输入文字->关掉之前的运行窗口即可。5)框内打印文本:outtextxy(30, 45, "world");颜色:settextcolor(RGB(255, 255, 0));文件:使用system("pause");字体: settextstyle(30, 0, "微软雅黑");1)settextstyle() 报错,没有匹配的重载函数。2)loadimage() 报错,没有匹配的重载函数。
2023-12-12 19:23:03 507
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人