一.const引用1.权限放大此处因为a被const修饰了所以不可以改变但是在引用这里ra是a的别名ra可以修改所以不对这里为权限放大不可以。2.权限缩小此处b原来是一个常量但是在rb这里被const了从原来可以被修改到这里不可以被修改权限缩小了这里是可以的。3.存临时变量此时a*3是一个临时变量直接用引用存储的话是不可以的此时可以加一个const这里加入const可以延长临时变量的生命周期直到引用结束临时变量才会被销毁。4.类型转换的引用如图将一个浮点数类型转化为整数本质来说是将浮点数的整数部分当作一个临时变量来储存但是直接引用是不可以的所以要用const来修饰此处就可以了。注如果此处改变d理论上不会直接改变rd因为rd存的是临时变量而不是dd会改变临时变量临时变量才会继续改变rd。二.引用与指针上面的我很多就在之前的描述中说过此处不在过多叙述。三.inline1.宏函数#define ADD(a,b) ((a)(b))(1)宏函数在一定程度上是可以替代函数的他的优点就是不需要额外建立栈帧在使用的时候会直接替换提高了效率节约了内存。2缺点复杂不可以调试。2.inline1)如图C为了可以既节约空间也还想方便调试那些那么就产生了inline2优点a.调用不会建立函数栈帧类似于宏b.VS上默认在调用的时候是不展开的展开的意思是在main中使用时它不同于函数就相当于替换但实际就是展开的这样方便调试因为这样在调试的时候会进入add中可以一步步看它的运行不然编译器会直接跳过add这样就看不了了。3缺点问题就是如果一个宏太大了那么在一个程序中就很麻烦。示例比如inline中有100行主函数中要调用10000词那么一共就是100*10000这回很大如果是函数就是10010000;那么为了避免这个问题但inline中超过10行左右就会自动变成函数所以要注意这个点。4inline不可以分离使用分离使用声明在.h解释在.cpp。都要写在一个头文件中此处不再深入了四.nullptr1.NULLNULL这个本质就是02.nullptr如图在我调用f(NULL)的时候会自动调用第一个本质是系统认定NULL是0但是我们想调用第二个。2那么就可以这样就是可以调用第二个了。3本质因为第二个函数是指针类型nullptr会被转化为指针类型符合情况二所以可以更多作用可等后面发掘