随笔分类 - C/C++
摘要:Constant Meaning ValueCHAR_BIT Number of bits in the smallest variable that is not a bit field. 8SCHAR_MIN Minimum value for a variable of type signed
阅读全文
摘要:栗子 class Test(){ public: Test(){} const int foo(int a); const int foo(int a) const; }; 一、概念 当const在函数名前面的时候修饰的是函数返回值。 当const在函数名后面表示是常成员函数,该函数不能修改对象内的
阅读全文
摘要:srand函数是随机数发生器的初始化函数。原型:void srand(unsigned seed); 用法:它初始化随机种子,会提供一个种子,这个种子会对应一个随机数,如果使用相同的种子后面的rand()函数会出现一样的随机数,如: srand(1); 直接使用1来初始化种子。不过为了防止随机数每次
阅读全文
摘要:用法: 下面通过代码给大家介绍c++ string insert() 函数,具体内容如下: //在原串下标为pos的字符前插入字符串str basic_string& insert (size_type pos, const basic_string& str); //str从下标为pos1开始数的
阅读全文
摘要:C ++ 14 假设字符串分别为: std::string prefix = "foo"; std::string string = "foobar"; 在C ++ 14中,通过std::mismatch返回两个范围中的第一个不匹配对很容易做到: bool isPrefix = std::misma
阅读全文
摘要:背景 以前一直觉得只要pull和push就够了,但合作中总会遇到各种非理想的情况。这时候才发现git其他命令的作用。 现在的情况是,repo是一个远程team维护的,我们需要增加新feature,那么就是一个feature分支了。由于开发中各种修改,本feature分支多次commit。最后,交给远
阅读全文
摘要:VScode编译C++主要有多种种方法,本文针对第一种方式:配置 launch.json 和 tasks.json 文件。 在安装完vscode,下载相应的插件后,编写C++程序并进行编译。在编译之前首先需要配置vscode的两个文件,分别为: launch.json 和 tasks.json 。
阅读全文
摘要:导读 C++中memory leak泄露的不止是内存,还有资源。如:构造函数中分配的文件描述符、信号量、窗口句柄、数据库锁等。 1 仔细区别pointers和references 引用必须总是代表某个对象,因此必须要有初值。指针则没有这个限制(空指针)。 指针可以被重新赋值从而指向别的对象。而引用总
阅读全文
摘要:<pre name="code" class="cpp">/* strlen函数解析 */ # include<stdio.h> # include<malloc.h> # include<string.h> int main(void) { char * c1 = "AbSjhhss"; int
阅读全文
摘要:##strcpy和memcpy的区别 strcpy和memcpy都是标准C库函数,它们有下面的特点。 strcpy提供了字符串的复制。即strcpy只用于字符串复制,并且它不仅复制字符串内容之外,还会复制字符串的结束符。 已知strcpy函数的原型是:char* strcpy(char* dest,
阅读全文
摘要:##C/C++ code char* p1="abcdefg"; char* p2; p2=p1; strcpy(p2,p1); 其中: p2=p1; strcpy(p2,p1); 这两个语句有什么区别?? ##解析: 没分配内存空间不能直接strcpy char* p2; 这是在声明一个变量 声明
阅读全文
摘要:头文件:#include <string.h> strlen()函数用来计算字符串的长度,其原型为:unsigned int strlen (char *s); **【参数说明】**s为指定的字符串。 strlen()用来计算指定的字符串s 的长度,不包括结束字符"\0"。 **【返回值】**返回字
阅读全文
摘要:#1.为什么要引入虚拟继承 虚拟继承是多重继承中特有的概念。虚拟基类是为解决多重继承而出现的。如:类D继承自类B1、B2,而类B1、B2都继承自类A,因此在类D中两次出现类A中的变量和函数。为了节省内存空间,可以将B1、B2对A的继承定义为虚拟继承,而A就成了虚拟基类。实现的代码如下: class
阅读全文
摘要:“free store” VS “heap” 当我问你C++的内存布局时,你大概会回答: “在C++中,内存区分为5个区,分别是堆、栈、自由存储区、全局/静态存储区、常量存储区”。 如果我接着问你自由存储区与堆有什么区别,你或许这样回答: “malloc在堆上分配的内存块,使用free释放内存,而n
阅读全文
摘要:全局变量与静态变量 static 声明的变量在C语言中有两方面的特征: 1.变量被放在程序的全局存储区中,这样在下一次调用的时候还可以保持原来的赋值。这一点是它与堆栈变量和堆变量的区别。 2.变量用static告知编译器,自己仅在变量的作用范围内可见。这一点是它与全局变量的区别。Tips: A.若全
阅读全文
摘要:1.什么是static? static 是C/C++中很常用的修饰符,它被用来控制变量的存储方式和可见性。 1.1static的引入 我们知道在函数内部定义的变量,当程序执行到它的定义处时,编译器为它在栈上分配空间,函数在栈上分配的空间在此函数执行结束时会释放掉,这样就产生了一个问题: 如果想将函数
阅读全文
摘要:计算机系统 我们知道计算机系统是由硬件和软件组成的。它们共同工作来运行应用程序。虽然系统的实现方式随着时间不断变化,但是系统内在的概念却没有改变。所有计算机系统都有相似的硬件和软件组件,它们执行着相似的功能,我们只有深入了解这些组件是如何工作的,以及这些组件是如何影响程序的正确性和性能的,才能写出高
阅读全文
摘要:在C语言中,指针的功能十分强大,这使得在C中程序员对于指针的使用要十分地谨慎。那么首先我们对于指针的使用就是要对空悬指针(dangling pointer)和野指针进行避免。 首先我们介绍空悬指针,空悬指针指的是一个指针,当它指向的对象已经被释放的时候而自身却没有被置为null的时候,那么这个指针就
阅读全文
摘要:#为什么静态成员不能在类内初始化? 在C++中,类的静态成员(static member)必须在类内声明,在类外初始化,像下面这样。 class A { private: static int count ; // 类内声明 }; // 类外定义并初始化,不必再加static关键字 int A::c
阅读全文
摘要:看个示例 #include<iostream> #include<string> using namespace std; int main() { string str = "hello"; str[3] = '\0'; cout << str << endl; return 0; } 输出:he
阅读全文