C++
leo tan
鱼翔浅底
展开
-
QDataStream写二进制文件
QDataStream写二进制文件出现内容错误问题原创 2022-04-26 09:23:06 · 743 阅读 · 0 评论 -
C++ 语法详解
const修饰普通类型的变量表示变量不可重复赋值const前加volatile修饰表示变量可以被重复赋值const修饰指针变量const int *p=8;指针指向的内容不可变int* const p=&a;指针指向的内存地址不可变const int* const p=&a;指向的内容和内存地址都不可变const修饰参数传递和函数返回值const修饰参数传...原创 2019-09-07 15:53:56 · 273 阅读 · 0 评论 -
C++ 指针和引用的详解
定义:*:指针运算符&:取址运算符&:当&作用于一个对象时,它返回了该对象的地址。int num=7;int* p=#//这里的指针p指向了num所对应的地址传参:当使用指针作为形参时,编译器需要给指针零星分配存储单元,存储一个该指针的副本,在函数内部对付被进行操作。使用应用作为形参时,函数将直接对实参进行操作,程序运行速度更快,效率...原创 2019-09-07 15:48:31 · 261 阅读 · 0 评论 -
ASCII码的详解
定义信息在计算机中使用二进制来表示,计算机通过识别不同的二进制码来执行不同的操作,ASCII码就是将机器码翻译成人类可以识别的编码。ACII码(AMerican Standard Code for Information Interchange)由美国国家标准局(ANSI)制定机器码可阅读的ASCII码八进制十六进制十进制字符00-0700-FF0-255...原创 2019-09-07 15:45:36 · 1661 阅读 · 0 评论 -
C/C++ 内存分配详解
栈区(stack sagment)由编译器自动分配释放,存放函数参数和局部变量值。在Windows下,栈是向低地址扩展的数据结构,是一块连续的内存区域。栈顶的地址和栈的最大容量是系统预先规定好的,在Windows下,栈的大小是1M,如果申请的控件超过栈的剩余空间时,将提示stack overflow。通过栈获得的空间较小。堆区(heap sagment)由程序员分配释放,若不释放,...原创 2019-09-07 15:39:58 · 348 阅读 · 1 评论 -
解决C++栈空间不足问题(如声明大数组)
特征该类负责创建自己的对象,同时确保只有单个对象被创建。提供访问其唯一对象的方式,可以直接访问,不需要实例化该类的对象。实现构造方法私有化提供一个static private对象指针提供一个static public GetInstance()函数,用于获取其静态私有对象懒汉:构造时进行初始化饿汉:类加载时就初始化线程安全#include “singleton.h”//...原创 2019-09-07 15:34:23 · 2510 阅读 · 0 评论 -
C++(time.h)系统时间详解
定义世界标准时间:格林尼治时间(Greenwich Mean Time,GMT),中国内地时间为UTC+8,美国是UTC-5日历时间:从一个标准时间点到此时的时间经过的秒数,“相对时间”时间点:长整型,当前时间和标准时间相差的秒数。时钟计时单元:C/C++基本计时单位说明 <time.h> clock_t clock(void);//从进程开始到调用clock之间的C...原创 2019-09-07 15:25:09 · 1835 阅读 · 0 评论 -
C++字符串操作
从字符串读取格式化输入int sscanf( char* str,//输入字符串 char* format [,args] ...);用于从字符串中读取指定格式的数据,会将参数str的字符串根据参数format(格式化字符串)来转换并格式化数据,转换后的结果存于对应的变量中scanf()以键盘(stdin)为输入源,sscanf()以固定字符串为输入源 demo: char ...原创 2019-09-07 15:20:09 · 673 阅读 · 0 评论 -
strcpy和memcpy的区别
strcpy()char* strcpy( char* dest,//目标字符地址 const char* src//源字符地址)定义:只能复制字符串,不仅复制字符串内容。复制’\0’结束符。不需要指定长度,遇到结束符’\0’才结束。memcpy()void* memcpy( void* dest,//目标地址 const void* src,//源地址 size_...原创 2019-09-07 15:04:54 · 92 阅读 · 0 评论 -
queue的详解
stl::queue头文件:queue q;基本操作:q.push();//入队,加入到队列末端q.pop();//出队,弹出队列第一个元素,不返回值!q.front();//去除队列第一个元素的值...原创 2019-09-07 14:57:27 · 283 阅读 · 0 评论 -
一维、二维数组的动态申请
一维数组:int p[m];二维数组:int p[m][n];C中的malloc/free一维数组的动态申请int *p=(int*)malloc(sizeof(int))*m;二维数组的动态申请和释放int **p=(int**)malloc(sizeof(int*)*m);for(int i=0;i<m;i++){ *(p+i)=(int*)malloc(size...原创 2019-09-07 14:55:58 · 120 阅读 · 0 评论 -
预编译头.pch文件详解
背景编译器一般都是以文件为单位进行编译,如果修改了工程中的一个文件,那么将导致所有文件都要从新编译,这样的编译将耗费很长时间。目的为了提高编译速度,将那些不常被修改,比较稳定,文件单独包含到一个指定的头文件中, 然后生成一个预编译头文件 *.pch 。原理VC中默认的头文件为 stdAfx.h, 但光有头文件无法编译,所以还要用到StdAfx.cpp里只包含一句有效代码,这样编译时,通过...原创 2019-09-07 14:06:22 · 667 阅读 · 0 评论 -
VS编译错误集锦
error C1083: 无法打开预编译头文件xxx.pch: No such file or directory在解决方案资源管理器中:在stdafx.cpp上右键–>属性弹出的stdafx.cpp属性框中,选择配置属性–>C/C++–>预编译头在预编译头中选择“创建”,而不是原来默认的“使用”其他cpp文件默认“使用”就OK了fatal error C1083: ...原创 2019-09-07 14:04:21 · 211 阅读 · 0 评论 -
C++ malloc()与HeapAlloc()的区别
DECLSPEC_ALLOCATOR LPVOID HeapAlloc( HANDLE hHeap,//HeapCreate或GetProcessHeap DWORD dwFlags,//HeapCreate的标志 SIZE_T dwBytes//分配的内存大小);dwFlags定义HEAP_GENERATE_EXCEPTIONS分配失败则抛出异常H...原创 2019-09-07 12:17:02 · 1201 阅读 · 0 评论