使用QT在命令控制台输出:项目—运行—-run in terminal
const关键字
const int * p =20;//p的值只能读不能写
int const int * p = 20;//地址不能变,能写能读
const int const *p = 20;//地址不能变值只能读
volatile关键字
强调变量不能进行编译优化处理,之前在做嵌入式的时候经常用到
inline内联函数
作用是增加效率
引用与指针的区别
- 指针是指向地址,而引用是那块地址的别名。
- 指针是一个实体,而引用仅仅只是一个别名。
- 指针在使用的时候需要加*,而引用 不会。
- 引用只能在定义的时候被赋值,之后不能被改变。
- 指针与引用在使用sizeof的时候由于指针仅仅是一个指向目标地址的值,所以sizeof的出来的是指针的大小,而引用由于是别名所以是原本变量的大小
- 引用与 指针的最大区别是一个是指向地址,一个是一块地址的别名!程序为指针变量分配内存空间,而不会为引用分配空间。 -
- 在使用++的时候也是不同的。
命名空间如果不取名字,则命名空间外不能调用。
在C语言中如果申请内存使用的是malloc ,在使用完之后需要free释放,而在C++的时候new出对象,使用delete删除内存,前者在是栈中,而后者则是在堆中。在delete中的时候,如果是new 的数组,则需要delete [] **,这样避免内存泄漏。
构造函数只能public ,这与java和c#不同,析构函数用于变量的处理,构造函数用于对变量的初始化。在构造函数的使用的时候完成对const常量的初始化,const常量只能在这里赋值。构造函数也能缺省。构造函数也能有多个,而析构函数只能有一个。
浅拷贝只是简单的赋值,如果存在有指针的情况下,则会导致出错,这时候需要深拷贝。