C&C++
我不是萧海哇
主要是分享一些看过的知识点,如果侵权请告知我。
展开
-
逻辑运算符与位运算符
&& 和 || 和 !属于逻辑运算符号& 和 | 和 ^ 属于位操作符一、&&和&的区别1.1 相同点:&和&&都可以用作逻辑与的运算符,表示逻辑与(and),当运算符两边的表达式的结果都为true时,整个运算结果才为true,否则,只要有一方为false,则结果为false。1.2不同点:1.2.1. &&还具有短路的功能,即如果第一个表达式为false,则不再计算第二个表达式。例如,对于if(str !转载 2021-07-15 13:11:15 · 1306 阅读 · 0 评论 -
C语言的内存管理
堆和栈的区别:栈的特征执行的速度相对较快;空间较小;生存期由系统决定;作用域较小;有名空间,可以通过变量名或者数据名访问;堆的特征执行的速度相对较慢;空间较大;生存期由“自己”决定,malloc申请,free释放;作用域很大(整个程序都可以访问);无名空间,只能通过指针使用;C语言空间的申请malloc功能:分配 size 字节的未初始化内存。若分配成功,则返回指向分配内存块最低位(首位)字节的,为任何拥有基础对齐的对象类型对齐的指针。头文件:#include<st转载 2021-07-15 11:12:55 · 153 阅读 · 0 评论 -
auto_ptr的VC版本源码剖析
auto_ptr是当前C++标准库(STL)中提供的一种智能指针,包含于头文件 #include 。auto_ptr 能够方便的管理单个堆内存对象,在你不用的时候自动帮你释放内存。一个版本的auto_ptr是Linux和VS中使用的,另一个是VC版本的,下面是VC版本的auto_ptr的源代码剖析:template<class _Ty>class auto_ptr{public: explicit auto_ptr(_Ty *_P=0):_Owns(_P!=0),_Ptr(_P转载 2021-07-15 09:49:24 · 128 阅读 · 0 评论 -
VC++ 得到文件大小
#include <windows.h>#define MAX_LENGTH 1000 int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow){ WIN32_FIND_DATA fileInfo; //定义文件信息结构体变量 HANDLE转载 2021-07-14 10:27:34 · 267 阅读 · 0 评论 -
VC 使用IE、火狐或默认浏览器打开网页ShellExecute
使用IE打开:ShellExecute(NULL, _T("open"), _T("IExplore.exe"), _T("http://..."), NULL, SW_SHOW);使用火狐打开:ShellExecute(NULL, _T("open"), _T("firefox.exe"), _T("http://..."), NULL, SW_SHOW);使用默认浏览器打开:ShellExecute(NULL, _T("open"), _T("http://..."), NULL, NUL转载 2021-07-14 09:49:27 · 866 阅读 · 0 评论 -
VC6.0编写在windows7下以管理员权限运行的程序
方法一: VC6:导入manifest文件1.新建一文件命名为 xxx.manifest.内容如下:<? xml version="1.0" encoding="UTF-8" standalone="yes" ?>< assembly xmlns ="urn:schemas-microsoft-com:asm.v1" manifestVersion ="1.0" >< assemblyIdentityversion ="1.0.0.0"processorArchit转载 2021-07-14 09:48:32 · 482 阅读 · 0 评论 -
C++异常处理
引言异常,让一个函数可以在发现自己无法处理的错误时抛出一个异常,希望它的调用者可以直接或者间接处理这个问题。而传统错误处理技术,检查到一个局部无法处理的问题时:1.终止程序(例如atol,atoi,输入NULL,会产生段错误,导致程序异常退出,如果没有core文件,找问题的人一定会发疯)2.返回一个表示错误的值(很多系统函数都是这样,例如malloc,内存不足,分配失败,返回NULL指针)3.返回一个合法值,让程序处于某种非法的状态(最坑爹的东西,有些第三方库真会这样)4.调用一个预先准备好在出现转载 2021-07-13 12:24:52 · 163 阅读 · 0 评论 -
C 库函数 - fprintf()
描述C 库函数 int fprintf(FILE *stream, const char *format, …) 发送格式化输出到流 stream 中。声明下面是 fprintf() 函数的声明。int fprintf(FILE *stream, const char *format, …)参数stream – 这是指向 FILE 对象的指针,该 FILE 对象标识了流。format – 这是 C 字符串,包含了要被写入到流 stream 中的文本。它可以包含嵌入的 format 标签,fo转载 2021-07-13 12:18:03 · 207 阅读 · 0 评论 -
一定用得到的免费 C++ 资源,值得收藏!
曾经看过国外的程序猿这么评价C/C++:想要精通C/C++,就跟要精通中文一样难,至少需要你努力三年。 提到C/C++语言很多初学者都觉得,学到中间就进行不下去了,但是如果你最难啃的那几块硬骨头拿下,一切都会顺畅许多,而且C++诞生很久了,因此有大量可以免费阅读编程文档。近日,在Quora上发现一份免费的C ++资料列表,涉及到C++的各方各面。如果你对C++感兴趣,不妨继续往下看看看这些资料是不是你正需要的。 C++标准参考 C++ reference 地址:https://en.cpprefe.转载 2021-07-13 12:18:10 · 312 阅读 · 0 评论 -
C++调用MATLAB函数
MATLAB具有着很高的计算性能,一些算法用MATLAB很容易实现,而用C++很难实现,如果想在C++中调用MATLAB编写的函数,可以将该函数编译成库文件,之后在C++中对其进行调用。本文详细讲解如何将MATLAB函数编译成库,并在C++中进行调用。方法可行,本人亲测。第一步、在MATLAB中的命令行窗口中输入mex -setup,会出现如下界面。第二步、点击界面中的“mex -setup C++”,出现如下提示。第三步、之后就是进行对MATLAB中的function的编译了。这里,我的函数名转载 2021-07-13 12:18:15 · 1447 阅读 · 0 评论 -
C++ 创建二维数组的几种方法
一、用new申请内存空间int **dp=new int*[n];//动态申请二维数组nxmfor(int i=0;i<n;++i){ dp[i]=new int[m];}二、用malloc申请内存空间1 int len=100;2 3 int **dp=(int **)malloc(sizeof(int) *(len+1));for(int i=0;i<=len;++i){4 dp[i]=new int[4];5 }三、使用vector创建一个二维数组1转载 2021-07-13 12:18:28 · 1890 阅读 · 0 评论 -
C++ delete指针以后应赋值为NULL
delete p后,只是释放了指针指向的内存空间。p并不会自动被置为NULL,而且指针还在,同时还指向了之前的地址delete NULL编译器不会报错(因为delete空指针是合法的)例:对一个非空指针delete后,若没有赋NULL,若再次delete的话,有可能出现问题。如下代码1 int *p = new int(3);2 delete p;3 delete p;用VC编译运行将出现问题。将其改为:1 int *p = new int(3);2 delete p;3 p =转载 2021-07-12 11:50:37 · 458 阅读 · 0 评论 -
C++ 必备知识点(一看秒懂),逆袭进大厂,干货满满,全在这里
本文主要对C++一些必备知识点的梳理,适合在校学生、有意向跳槽的,工作经验不足的人群。 更有C++11 常用的特性知识梳理。 知识梳理 C++ new关键字详解C++ 深拷贝和浅拷贝C++ 静态库和动态库C++ new和malloc的区别详解C++ 宏定义和typedef区别详解C++ strlen和sizeof区别C++ 野指针和悬空指针C++ struct和class的区别...转载 2021-07-12 11:50:23 · 182 阅读 · 0 评论 -
lrc计算
unsigned char calc_lrc2(unsigned char* data, int data_len){ unsigned char lrc = 0; for (int i = 0; i < data_len; i++) { lrc ^= data[i]; } return lrc;}原创 2021-07-09 10:09:21 · 302 阅读 · 0 评论 -
四字节转int
//四字节转intint byte2int(uint8_t *data){ int value = (int)((data[3] & 0xFF) | ((data[2] & 0xFF) << 8) | ((data[1] & 0xFF) << 16) | ((data[0] & 0xFF) << 24)); return value;}原创 2021-07-09 10:08:52 · 2442 阅读 · 1 评论 -
int转hex
void int2Hex(uint8_t* data, int iLen){ char H_len = (iLen) >> 8; char L_len = (iLen); data[3] = H_len; data[4] = L_len;}原创 2021-07-09 10:08:19 · 1284 阅读 · 0 评论