函数返回值为指针类型
函数返回值使用指针时可以返回函数内部的动态分配内存地址,局部静态变量地址,以及全局静态变量和外部变量地址
一 返回函数内部动态内存分配地址
#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;会报堆区的错
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现