这里写目录标题
C++1
1#include
1.1using namespace std;
1.2cout << “hello …” << endl;
1.3system(“pause”)
1.4retrun 0
2::双冒号作用域运算符
2.1全局作用域 直接加::
3namespace 命名空间
3.1用途 解决名称冲突问题
3.2必须在全局作用域下声明
3.3命名空间下可以放入 函数、变量、结构体、类…
3.4命名空间可以嵌套命名空间
3.5命名空间是开放的,可以随时加入新的成员
3.6匿名命名空间 static
3.7可以起别名
4using声明和using编译指令
4.1 using LOL:: sunwukongID;
4.2如果局部范围内还有 sunwukongID,会出现二义性问题,要注意避免
4.3 编译指令
4.4using namespace LOL
4.5如果局部范围内还有 sunwukongID ,使用局部的ID
4.6如果打开多个房间,那么也要注意二义性问题
5C++对C语言增强
5.1全局变量检测增强
5.2函数检测增强
5.2.1参数类型检测
5.2.2返回值检测
5.2.3传参个数检测
5.3类型转换检测增强
5.3.1malloc返回void* ,C中可以不用强转,C++必须强转
5.4struct增强
5.4.1C中不许有函数 C++可以
5.4.2使用C必须加关键字 struct ,C++可以不加
5.5bool数据类型增强
5.5.1C没有 C++有
5.5.2true 真 false假
5.5.3sizeof 1
5.6三目运算符增强
5.6.1C中返回的是值
5.6.2C++中返回的是变量
5.7const增强
5.7.1C语言中const是伪常量,可以通过指针修改
5.7.2C++中const会放入到符号表中
5.7.3C语言中const默认是外部链接,C++中const默认是内部链接
5.7.4const分配内存情况
5.7.4.1对变量取地址,会分配临时内存
5.7.4.2extern关键字下的const会分配内存
5.7.4.3用普通变量初始化const变量
5.7.4.4自定义数据类型会分配内存
5.7.5尽量用const代替define
5.7.5.1define宏没有作用域概念
5.7.5.2define宏常量没有类型
6引用基本语法
6.1.1用途起别名
6.1.2Type &别名 = 原名
6.1.3引用必须初始化
6.1.4一旦初始化后 不能修改
6.1.5对数组建立引用
6.2参数3种传递方式
6.2.1值传递
6.2.2地址传递
6.2.3引用传递
6.3注意事项,不要返回局部变量的引用
6.4如果函数返回值是引用,那么函数的调用可以作为左值
6.5引用的本质 就是一个指针常量
7指针的引用
7.1用一级指针引用 可以代替二级指针
8常量引用
8.1使用场景 修饰形参为只读
8.2const int &a = 10;会分配内存