![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C/C++
文章平均质量分 50
Summit_Yue
Make the change
展开
-
返回数组指针
返回数组指针因为数组不能被拷贝,所以函数不能返回数组。不过,函数可以返回数组的指针或者引用。其中最直接的方法就是使用类型别名。typedef int arrT[10]; //arrT是一个类型别名,表示含有10个整型数的类型using arrT = int[10]; //同上的等价声明arrT* func(int i); //函数func返回一个指针,指针指向一个含有10个整型数的数组声明原创 2017-10-26 15:41:10 · 1637 阅读 · 0 评论 -
g++命令用法介绍
g++命令用法介绍首先,要编译运行一个C++源文件,g++的编译流程是这样的:预处理 —> 编译 —> 汇编 —> 链接1.预处理命令:g++ -E 仅做预处理,不进行编译、汇编和链接。得到.l格式文件如: g++ -E main.cpp -o main.l2.编译命令:g++ -s 编译到汇编语言,不进行汇编和链接。得到.s格式文件如:g++ -s main.l -o main.s3.汇编命令:g原创 2017-10-29 15:11:28 · 2370 阅读 · 0 评论 -
cmake基本用法
cmake基本用法我们编写一个C++单例类,使用cmake构建项目,主要是为了记录一下cmake的基本用法。 首先项目文件夹为DemoProject,我们创建一个main.cpp作为我们的主文件,创建一个子文件夹Singleton,在Singleton中创建Singleton.h和Singleton.cpp作为我们的单例类。代码如下,很简单,就是获取一个单例然后调用它的函数:main.cpp#in原创 2017-10-29 15:11:02 · 1387 阅读 · 0 评论 -
C++ this指针与const成员函数
C++ this指针与const成员函数this指针每个对象拥有一个this指针,通过this指针来访问自己的地址。this指针并不是对象的一部分,this指针所占的内存大小是不会反应在sizeof操作符上的。this指针只能在成员函数中使用,全局函数、静态函数都不能使用this指针**在普通成员函数中,this是一个指向非const对象的const指针(如类类型为Student,那么thi原创 2017-10-29 15:09:54 · 5551 阅读 · 2 评论 -
C++ const char\*与char\* const
C++ const char*与char* constC++里的const char*和char* const一直很容易混,其实只要理解了const到底修饰的哪个,就会豁然开朗。或者就按书中所写的,倒着读来记忆。 const char *p —> p是一个指针,指向const char char* const p —> p是一个常量,指向char的指针常量 代码示例:char a = 'a'原创 2017-10-29 15:08:34 · 2632 阅读 · 1 评论 -
C++中的i++与++i
C++中的i++与++iC++中的++i与i++主要有两个区别: 1. i++返回的是原来的值,++i返回的是i+1后的值 2. i++不能作为左值,而++i可以作为左值 第一条比较容易理解,我们重点来看一下第二条,为什么i++不能作为左值,而++i可以。 看了它们各自的实现其实也就一目了然:// 前缀形式:int& int::operator++() //这里返回的是一个引用形式,就是说原创 2017-10-29 15:08:09 · 1135 阅读 · 0 评论 -
C++位运算
C++位运算总结一下C++中位运算的用法。&(与运算)举例 11&3 = 3 00001011& 00000011= 00000011= 3常用例子 我们判断是否被2整除,一般写成if(n%2==0),使用位运算符也可写作if(n&1==0)|(或运算)举例 11|3 = 11 0000...原创 2017-10-27 19:54:56 · 300 阅读 · 0 评论 -
C++内存空间
C++内存空间一个C++程序编译后占用的内存分为如下几个部分: 栈:由编译器自动分配释放,存放函数的参数值,局部变量的值。在一个进程中,位于用户虚拟地址空间顶部的是用户栈,编译器用它来实现函数的调用。 堆:由程序员分配和释放,若程序员不释放,则程序结束时被OS回收。存放由new,malloc分配的内存,可动态扩展和收缩。 全局区(静态区):全局变量和静态变量的存储是放在一起的,初始化的全局变量原创 2017-10-27 19:53:37 · 4297 阅读 · 0 评论 -
C++模板类与模板函数
C++模板类与模板函数C++中的泛型编程,模板类与模板函数用法,包括模板类外定义成员函数用法如下代码所示。#include<iostream>#include<vector>#include<string>using namespace std;template <class T1,class T2>class Student { //模版类,具有两个类型T1,T2原创 2017-10-27 19:53:16 · 395 阅读 · 0 评论 -
C++拷贝控制与资源管理
C++拷贝控制与资源管理参考《C++ Primer》P452 拷贝控制与资源管理当一个类需要自定义析构函数,那么它几乎肯定也需要定义拷贝构造函数和拷贝复制运算符。 如下例子:class HasPtr {public: HasPtr(const std::string &s = std::string()): ps(new std::string(s)),i(0) {} ~HasPt原创 2017-10-27 19:51:44 · 317 阅读 · 0 评论 -
模板实参推断和引用以及move和forward详解
模板实参推断和引用以及move和forward详解从左值引用函数参数推断类型当一个函数的参数是一个左值引用时,我们只能传递给它一个左值,实参可以是const类型或非const类型,实参是const,则T被推断为const。 例如:template<typename T> void f1(T&);f1(i); //实参为int,则T推断为intf1(c...原创 2017-10-26 15:49:09 · 604 阅读 · 0 评论