- 由于传参时,实参会复制一份给形参,函数内部对于形参的修改,并不影响实参
- 因此传入指针可以解决这一问题,实际上并没有修改指针的值,而是修改了指针指向的内容
- 如果想在函数内部修改一个int类型的值x,那么需要传入int *类型的值,继而间接的修改int类型的值x
#include <iostream>
using namespace std;
void CreateArray(int* *p,int size)
{
*p = new int[size];
for (int i = 0; i < size; i++)
{
(*p)[i] = i;
}
}
void Output(int *p,int size)
{
for (int i = 0; i < size; i++)
{
cout << p[i] << endl;
}
}
void DeleteArray(int* *p)
{
delete p[0];
p[0] = NULL;
}
int main()
{
int **p = new int*[1];
CreateArray(p,10);
Output(*p, 10);
DeleteArray(p);
delete p;
p = NULL;
system("pause");
}
运行效果如下: