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;。如果没有收回指针,如果将一块内存重复回收,计算机就会出现异常。
相关文章推荐
- C语言,设计出租车计价器,不能计算夜间加费用的版本
- C++与JAVA的不同之处
- c语言:break和continue的区别,编程举例说明
- c语言:输出100~200之间的不能被3整除的数。
- c语言:全系1000学生募捐,总数达到10万元结束,统计捐款人数,平均每人捐款数目
- 【Codeforces 282E】Sausage Maximization 中文题意&题解&代码(C++)
- c语言:键盘上回车的作用相当于\n,是一个字符
- leetcode191题 题解 翻译 C语言版 Python版
- C++迭代器
- 链表ADT C语言实现
- neuq oj 1017平面切割(特别版)C++
- ASCII编码
- neuq oj 1016 Roliygu and Yilan C++
- Chapter 1-03
- neuq oj 1015同因查找C++
- C++11 转移语义 (Move Sementics) 和精确传递 (Perfect Forwarding)
- C语言连接mysql数据库查询中文的数据表乱码问题
- C语言的一些小知识
- C语言 实现base64
- C语言 实现base64