21天学通C++_Day6

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、指针可能失效,而引用不会失效

原文地址:https://www.cnblogs.com/Big-Rabbit/p/4376163.html