
C/C++
笨小孩要多学习
精益求精
展开
-
C++之获取string字符串长度的方法
C++中获取string字符串长度的方法主要有3种:使用length()成员方法获取; 使用size()成员方法获取; 使用strlen()函数获取。1.使用length()成员方法进行获取string str = "abcde";int len = str.length();2.使用size()成员方法进行获取string str = "abcde";int len = str.size();3.使用strlen()函数获取string str = "abcde";原创 2021-04-27 21:31:12 · 4667 阅读 · 0 评论 -
C++之变量初始化顺序
C++中变量的初始化顺序如下:1.基类的静态变量或全局变量; 2.派生类的静态变量或全局变量; 3.基类的成员变量; 4.派生类的成员变量;类成员变量初始化时注意事项:类成员在定义时不能初始化; 类中const成员常量必须在构造函数初始化列表中初始化; 类中static成员变量,必须在类外初始化; 成员变量在使用初始化列表初始化时,与构造函数中初始化成员列表的顺序无关,只与定义成员变量的顺序有关; 成员变量在构造函数中初始化时,成员变量在构造函数中的顺序有关。...原创 2021-04-27 21:20:13 · 717 阅读 · 0 评论 -
C++之delete与 delete []区别
delete只会调用一次析构函数,而delete[]会调用每一个元素的析构函数。delete与new配套使用,delete[]与new[]配套使用。原创 2021-04-27 11:32:44 · 114 阅读 · 0 评论 -
C++存储区
C++存储区主要分为五大类型:全局变量与静态变量区、常量区、局部变量区(栈)、动态存储区(堆)、自由存储区1.全局变量与静态变量区存放全局变量、静态变量,程序运行结束后释放。2.常量区存放常量,不允许修改。3.栈存放局部变量、函数参数。由编译器控制,自动分配和释放。4.堆malloc/free在堆存储区上申请和释放内存,由人控制。5.自由存储区用于new/delete/delete [] 在自由存储区(是一种概念抽象,具体取决于底层实现,一般也是由malloc/fre原创 2021-04-27 11:27:54 · 808 阅读 · 0 评论 -
C++之new和malloc的异同
1.相同点new和malloc都用于申请申请动态内存。2.相异点2.1 申请和释放配套使用new进行动态内存申请时,配套使用delete进行释放;使用malloc进行动态内存申请时,配套使用free进行释放,进行malloc时。2.2 属性new/delete是C++关键字,需要编译器支持;malloc/free是库函数,需要头文件支持,即需包含<stdlib.h>。2.3 申请失败new申请动态内存失败时,会抛出bac_alloc异常;malloc.原创 2021-04-27 11:16:14 · 612 阅读 · 0 评论 -
C++之实现strlen获取字符串长度
int Strlen(const char * str){ const char * s = str; while (*s != '\0') { ++s; } return (s - str);}原创 2021-04-26 22:01:37 · 472 阅读 · 0 评论 -
C++之不使用库函数实现strcpy
C++之不使用库函数实现strcpychar * strcpy(char * dest, const char * src){ if (dest == nullptr || src == nullptr) { return nullptr; } while ((*dest++ = *src++) != '\0') { NULL; } return dest;}返回值为char *是为了实现链式表达式。...原创 2021-04-24 01:01:06 · 366 阅读 · 0 评论 -
C++之实现string构造、析构、拷贝、赋值
C++之实现string构造、析构、赋值String类定义如下:class String{public: //普通构造函数 String(const char *str = nullptr); //拷贝构造函数 String(const String& other); //析构函数 ~String(); //赋值运算符重载 String& operator= (const String& other);private: char * _data;原创 2021-04-24 00:40:21 · 351 阅读 · 0 评论 -
C++获取系统错误代码以及相应的错误信息
通常在调用Win32API失败时,可通过调用GetLastError()函数获取错误代码,然后根据错误代码可以查到调用失败的原因。其函数原型如下:DWORD WINAPI GetLastError(VOID);通过该函数获取的仅仅是错误代码,想要知道具体原因还需要查找该返回错误码所对应的错误信息。当然,也可以进一步通过调用FormatMessage函数获取相应的错误信息,其函数原型如...原创 2019-10-02 00:24:48 · 2534 阅读 · 0 评论 -
C/C++之目录创建
在日常开发中进行目录的判断以及创建可以说的上是家常便饭了,在进行一层目录 的创建比较简单,直接调用CreateDirectory即可实现。在VS中点击F12即可看到其定义如下:#ifdef UNICODE#define CreateDirectory CreateDirectoryW#else#define CreateDirectory CreateDirectoryA可以...原创 2019-09-29 22:27:59 · 1602 阅读 · 0 评论