0、指针&数组
数组是指向其第一个元素的指针,即数组变量就是指针。故可将(*)用于数组,也可将([])用于指针,eg:
int MyNums[5] = {0};
int* pNums = MyNums;
可以使用*(MyNums+1),也可以使用pNums[1]。
1、指针使用时要注意的点
①务必初始化指针变量为NULL;
②使用前要确认指针是否有效(检查是否为NULL);
③new和delete要配套,不然会造成内存泄露;
2、检查new发出的分配请求是否满足
法一:使用异常处理,catch(bad_alloc)
1 #include "stdafx.h"
2 #include <iostream>
3 using namespace std;
4
5 int main()
6 {
7 try
8 {
9 int* pAge = new int [536870911];
10 delete[] pAge;
11 }
12 catch(bad_alloc)
13 {
14 cout<<"Error!"<<endl;
15 }
16
17 return 0;
18 }
法二:new(nothrow),内存分配失败时返回NULL
1 #include "stdafx.h"
2 #include <iostream>
3 using namespace std;
4
5 int main()
6 {
7
8 int* pAge = new(nothrow) int [536870911];
9 if(pAge)
10 {
11 delete[] pAge;
12 }
13 else
14 cout<<"Error!"<<endl;
15
16 return 0;
17 }
3、引用==别名
引用,可以访问相应变量的内存单元,可以减少函数调用时复制的开销。
▪将const用于引用参数,不能做左值,eg:const int& Numbers;(尽量这样做!!!)
4、指针可能失效,而引用不会失效