![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
飞翔灬鲨鱼
这个作者很懒,什么都没留下…
展开
-
C++ CreateFile,WriteFile,ReadFile,SetFilePointerEx,DeviceIOControl
C++ CreateFile,WriteFile,ReadFile,SetFilePointerEx,DeviceIOControl原创 2023-03-04 21:17:19 · 754 阅读 · 0 评论 -
C++中 bool和BOOL的区别
C++中 bool和BOOL的区别原创 2022-11-03 15:40:39 · 381 阅读 · 0 评论 -
&=和|=的区别
&=和|=的区别原创 2022-10-13 11:09:10 · 202 阅读 · 0 评论 -
使用_CRT_SECURE_NO_WARNINGS,踩坑
错误 C4996 ‘sprintf’: This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.方法一:将原来的旧函数替换成新的 Security CRT functions。_CRT_SECURE_NO_WARNINGS错误提示,解决办法。原创 2022-10-08 15:04:43 · 756 阅读 · 0 评论 -
C++:常量引用
C++:常量引用这里介绍些int &ref = 10; (错误)引用必须引一块合法的内存空间const int& ref = 10;正确因为c++中有一个左值和右值的概念左值和右值都是针对表达式而言的,左值是指表达式结束后依然存在的持久对象,右值是指表达式结束时就不再存在的临时对象。一个区分左值与右值的便捷方法是:看能不能对表达式取地址,如果能,则为左值,否则为右值。为什么不能int &ref=10呢?因为非常量左值引用只能绑定非常量左值,常量左值引用能够绑定原创 2021-11-26 17:02:03 · 618 阅读 · 0 评论 -
C++:值传递、指针传递和引用传递
C++:值传递、指针传递和引用传递传递方式函数定义函数调用函数内对a修改的影响值传递fun(int a)fun(a)外部a不变指针传递fun(int *a)fun(&a)外部a同步更改引用传递fun(int &a)fun(a)外部a同步更改#include <string>#include <iostream>using namespace std;/// <summary>///原创 2021-11-26 11:32:14 · 182 阅读 · 0 评论 -
C++:引用(数组引用)
C++:引用(数组引用)在C++里,数组引用如下: //第一种方法(常用) //1,定义数组类型 typedef int(my_arr)[5]; typedef int my_arr1[5]; //2,建立引用 my_arr1& arref = arr;//建立引用,相当于int &b=a的模型 //第二种方法(常用) //直接定义引用 int (&arref2)[5] = arr;//int &b=a //第三种方法 typedef int原创 2021-11-26 10:39:07 · 8249 阅读 · 0 评论 -
c++:error LNK2005: “void * __cdecl operator new(unsigned int)“
c++:error LNK2005: “void * __cdecl operator new(unsigned int)“虽然不理解为什么这样做,但是的确成功了,试了别的方法都不太行。程序运行出现报错:解决方法:属性->配置->链接器->输入附加依赖项和忽略特定默认库都加上:uafxcwd.lib;Libcmtd.lib完成。...原创 2021-11-24 16:49:31 · 683 阅读 · 0 评论 -
C++:无法打开包括文件:“xxxx.h“
C++:无法打开包括文件:“xxxx.h”用VS编程经常碰到过这种问题,很无奈。明明这个头文件已经在程序中已经添加了这个头文件,就是时不时的给你弹出无法打开。这里做个笔记,防止忘。方法1:如果是已经添加的头文件或者头文件就在程序的同一目录下,可以在C/C++》常规》附加包含目录中添加$(ProjectDir),定位到当前程序目录。建议使用这一种方法2:可以在C/C++》常规》附加包含目录中添加具体的目录,不过这一种一旦换了路径就需要重新换,比较麻烦...原创 2021-11-24 14:56:41 · 7810 阅读 · 1 评论 -
C++:_CRT_SECURE_NO_WARNINGS
C++:_CRT_SECURE_NO_WARNINGS经常忘了如何加这个_CRT_SECURE_NO_WARNINGS,做个笔记备注下高版本的visual studio默认不让使用scanf等函数,认为这些函数不够安全,而其相对应的代替函数为scanf_s等。如果在visual studio中使用scanf等那些visual studio认为不安全的函数,就会报错。1、在文件开头添加 #define _CRT_SECURE_NO_WARNINGS2、在 项目->属性->C/C++&原创 2021-11-17 17:33:08 · 1484 阅读 · 0 评论 -
C++:堆和栈的理解
C++:堆和栈的理解C++中,内存分为5个区:堆、栈、自由存储区、全局/静态存储区和常量存储区。栈:是由编译器在需要时自动分配,不需要时自动清除的变量存储区。通常存放局部变量、函数参数等。栈的话,可以理解为你去住客栈,客栈是有老板的,老板管理着客栈的资源,他会给你决定住的那间房,你退房的时候,他会自动给你自动的清理你住过的房间的痕迹,给下一个用户住。堆:是由new分配的内存块,由程序员释放(编译器不管),一般一个new与一个delete对应,一个new[]与一个delete[]对应。如果程序员没有释原创 2021-11-12 10:41:08 · 763 阅读 · 0 评论 -
C++:const和指针
C++:const和指针const int* p;常量指针,修饰的类型,可以想象成*p是指向地址后面的值,那么const修饰值,那么值就不能改了,但是指针p指向的地址可以改int* const p1;指针常量,修饰的p的地址,可以这样理解p是首地址,那么const修饰地址,那么地址就不能改了,但是指针p的值可以改const int* const p2;双重const,所有的都不能修改#include<iostream>using namespace std;int main原创 2021-11-05 11:10:00 · 535 阅读 · 0 评论 -
C++: 字符串string、char *、char[]、vector<char>与char*相互转换
C++: 字符串string、char *、char[]相互转换亲测过。这字符串转换真心纠结#include <iostream>#include <string>using namespace std;int main(){ char str1[] = { "abcd" }; char str2[4] = { 'a','b','c',0 }; char str3[4] = { 'a','b','c','d' };//单纯的字符数组,这种字符数组,因为末尾没原创 2021-11-05 10:27:05 · 1310 阅读 · 0 评论 -
C++:Struct结构体和内存使用
C++:Struct结构体和内存使用struct A{ int age; string name;}C++中的结构体与类的区别: (1)class中默认的成员访问权限是private的,而struct中则是public的。 (2)class继承默认是private继承,而从struct继承默认是public继承。内存的空间使用空的类是会占用内存空间的,而且大小是1,原因是C++要求每个实例在内存中都有独一无二的地址。(一)类内部的成员变量:普通的变量:是要占用内存的,但是要注意对齐原创 2021-11-03 20:16:52 · 1090 阅读 · 0 评论 -
C++:union使用
C++:union使用union主要特点是共享内存,分配内存以其最大的结构或对象为大小,即联合体中元素的sizeof最大的为标准。在C++程序的编写中,当多个基本数据类型或复合数据结构要占用同一片内存时,我们要使用联合体;当多种类型,多个对象,多个事物只取其一时(我们姑且通俗地称其为“n 选1”)#include <iostream>using namespace std;////联合体的总的内存空间大小是12个字节union myUn{ struct { int x; int原创 2021-11-03 19:17:47 · 619 阅读 · 0 评论 -
C++: 笔记
C++: 笔记1,cout和endlcout:输出,记忆的时候C out,总是会记忆成countendl:end line 结束此行,并刷新缓冲区cout<<"helloworld"<<endl;2,#if #endif#if 表达式 // 如果表达式为真程序段1#else // 否则程序段2#endif可以直接通过宏定义来改变部分代码是否需要执行#include“stdio.h”#define TEST_2 1int ma原创 2021-10-30 16:15:46 · 112 阅读 · 0 评论 -
C++: int main(int argc,char* argv[])控制台参数解析
C++: int main(int argc,char* argv[])控制台参数解析argc:命令行总的参数个数argv[]:为保存命令行参数的字符串指针,其中第0个参数是程序的全名,以后的参数为命令行后面跟的用户输入的参数,argv参数是字符串指针数组,其各元素值为命令行中各字符串(参数均按字符串处理)的首地址。 指针数组的长度即为参数个数argc。指向的数组中至少有一个字符指针,即arg[0].他通常指向程序中的可执行文件的文件名。在有些版本的编译器中还包括程序文件所在的路径。//argc原创 2021-10-29 15:22:23 · 502 阅读 · 0 评论 -
C++:Socket:WSAStartup和WSADATA
C++:Socket:WSAStartup和WSADATA这里用通俗的语言解释一下这个函数,就类似于opencv一样,要添加链接库函数,cv.lib等,要添加到附加依赖项,或者通过#pragma comment(lib,”cv.lib“)一样,然后才能包含头文件进行各种函数的调用。当然了,socket编程要调用各种socket函数,但是需要库Ws2_32.lib和头文件Winsock2.h,这里的WSAStartup就是为了向操作系统说明,我们要用哪个库文件,让该库文件与当前的应用程序绑定,从而就可以调用转载 2021-10-29 11:28:34 · 3498 阅读 · 0 评论 -
C++:常用的缩写全称--持续更新
C++:常用的缩写全称–持续更新在使用过程中经常碰到一些缩写字母,但是不知道是什么全称,这里总结了一些缩写的全称前缀数据类型cchar或者WCHAR或TCHARbyBYTE(无符号字符)nshor(短整型)iint(整型)x,yint,表示x坐标和y坐标cx,xyint,表示x或者y的长度,c表示“count”(计数)B或fBOOL(int) f表示“flag”wWORD(无符号短整型)lLONG(长整型)dw原创 2021-10-29 09:49:28 · 2092 阅读 · 1 评论 -
C++:string转换LPTSTR,const char*
C++:string转换LPTSTR,const char*#include <string>#include <comdef.h>#include <iostream>using namespace std;int main(int argc, char* argv[]){ string cCommandline="hello world!"; //string转换LPTSTR _bstr_t bstr(cCommandline.c_str())原创 2021-10-28 16:45:25 · 1307 阅读 · 0 评论 -
C++:C3646:未知重写说明符__HANDLE的问题
C++:C3646:未知重写说明符__HANDLE的问题最近想写个socket程序,定义了一个HANDLE类型,一运行就报错。折腾了一上午,才知道HANDLE不是c++的标准库,需要定义头文件,让c++知道HANDLE是在哪里使用。后面加了一个#include <afx.h>才可以运行了...原创 2021-10-28 16:32:24 · 633 阅读 · 0 评论 -
C++:VS2019中“/ZI”和“/GL”命令行选项不兼容
C++:VS2019中“/ZI”和“/GL”命令行选项不兼容用VS2019经常出现这种问题,但是又不知道所以然。这里参照网上资料做个总结:/GL 为全程优化 开关,带有/GL选项开关,生成时不产生调试信息 在配置属性-> C/C++ -> 优化-> 全程优化中设置/ZL 为生为调试信息开头,两者不可同时使用 在配置属性-> C/C++ -> 常规-> 调试信息格式中设置在实际使用过程中:编译debug版本, 因为是需要调试的,则去掉GL选项(将全程优化中选为否原创 2021-10-28 10:01:31 · 3463 阅读 · 0 评论