您的位置:首页 > 编程语言 > C语言/C++

C++自学随笔(2)

2016-02-12 00:44 267 查看

引用

就像人的别名,人不能只有别名,变量也不能只有引用。

指针类型的引用:*&指针引用名 = 指针。

int a = 10;int *p =&a;int *&q =p1


const

const定义常量,无法更改。

const定义指针时
const int *p = NULL
int const *p = NULL
等价,但与
int * const p = NULL
不同。

int x = 3; const int *p = &x; //p = &y;正确 //p = 4错误


int x = 3; int *const p = &x; //p = &y;错误


const int x = 3; const int *const p = &x; //p = &y;*p = 4 均错误


int x = 3; const int &y = x; //x = 10;正确 // y = 20;错误


C++函数新特性

函数参数默认值:定义函数时,参数可以有默认值,如
void fun(int i,int j = 5,int k =10);


但需要注意,默认值必须在参数表的最右端,如
void fun(int i;int j = 5, int k)
是错误的。

没有实参输入时,使用默认值,否则使用实参覆盖默认值。

函数重载:相同作用域内,用同一函数名定义的多个函数,或者参数个数参数类型不同的函数。

int getMax(int x, int y, int z){//to do}
int get Max (double x, double y)
相互重载。

重载的好处:让计算机代替我我们决定应该使用哪个函数,提高编码效率。

内联函数:编译时将函数体代码和实参代替函数调用语句。可以为函数调用节省很多时间,特别是循环调用。关键字:inline

内联函数是建议性的,由编译器决定。

逻辑简单,调用频繁的函数建议使用内联。

递归函数无法使用内联方式。

内存管理

内存的本质:资源

操作系统掌管内存资源

内存管理的意义:向操作系统申请/归还内存

申请内存:int *p = new int;

释放内存 delete p;

申请和释放块内存
int *arr = new int[10];申请块内存
delete []arr;//释放块内存


申请内存注意事项:有可能出现申请失败的情况需要再申请时考虑到`int *p = new int [1000];if(NULL == p){//内存分配失败}

释放内存注意事项:要根据单个内存与块内存进行匹配,
delete p
delete []p
各自对应,还需要将指针置空
p = NULL;
。如果没有收回指针,如果将一块内存重复回收,计算机就会出现异常。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: