在C++中如何实现对数组内存的申请和释放呢?同样使用关键字new、delete,可见以下代码例子:
#include<iostream>
using namespace std;
int* getGapList(int* arr, int size) {
int* p = new int[size - 1]; //这里需要申请一个数组对应的内存,就可以返回去
for (int i = 0; i < size-1; ++i) {
p[i] = arr[i + 1] - arr[i];
}
return p;
}
int main() {
int array1[] = {1,2,3,4};
int *array2 = getGapList(array1, 4);
for (int i = 0; i < 3; ++i) {
cout << array2[i] << " ";
}
delete []array2;
array2 = NULL;
return 0;
}
C++中的引用:是给变量取一个别名,可以直接对变量的值进行操作!!
定义的格式见下:数据类型 & 变量名 = 变量
指针写起来要比引用复杂,可以见下面代码直观感受下:
#include<iostream>
using namespace std;
int main() {
//int c = 1212; 这里是引用的
//int &b = c;
//b = 340;
//cout << b << endl;
//cout << c << endl;
int c = 1212; // 这里是指针的
int* b = &c;
*b = 340;
cout << *b << endl;
cout << c << endl;
}
引用有两个特性:必须初始化,初始化以后无法修改。这个就是和指针的区别了,指针不初始化也可以的,引用比指针安全,不会出现空指针的问题,可见以下代码理解:
#include<iostream>
using namespace std;
int main() {
int e = 5,b = 9;
int& f = e; // 这里f就是被初始化为e,并且不会被修改了
f = b;
}