函数返回值为指针类型
函数返回值使用指针时可以返回函数内部的动态分配内存地址,局部静态变量地址,以及全局静态变量和外部变量地址
一 返回函数内部动态内存分配地址
#include <iostream>
using namespace std;
int* add(int x, int y)
{
int* p = new int(5);
*p = x + y;
return p;
}
int main()
{
// 接收外部函数动态内存分配的地址
int* point = add(1, 2);
cout << "*point = " << *point << endl;
delete point; //这里需要进行delete
return 0;
}
二 返回函数内部局部静态变量地址
#include <iostream>
using namespace std;
int* add(int x, int y)
{
static int sum = 0;
cout << "sum = " << sum << endl;
sum = x + y;
return ∑
}
int main()
{
int* p1 = NULL;
// 接收外部函数局部静态变量的地址
p1 = add(1, 2);
cout << "*p1 = " << *p1 << endl;
*p1 = 5;
add(3, 4);
cout << "*p1 = " << *p1 << endl;
//delete p1; // 这里不能delete,p1指向的是局部静态变量
return 0;
}
如果delete p1;会报堆区的错