当前位置: 首页 > news >正文

函数返回局部变量相关

提示:文章

文章目录

  • 前言
  • 一、背景
  • 二、
    • 2.1
    • 2.2
  • 总结

前言

前期疑问:
本文目标:


一、背景

看编程规范,看到返回局部变量

其中关键一点就是——禁止将局部变量的地址传递到其作用域外

二、

2.1

这个规范主要指出的的问题是下面的问题

char* GetData()
{constexpr char s[] = "hello world";return s;
}

其中规范中提到下面的一个正例,一开始我是很懵的,因为函数内部也返回了一个地址,为什么没有问题。

一开始我还以为是const的原因,查了下const修饰的局部变量也会在作用域消失后释放资源。const修饰应该是防止被更改。

std::string GetData()
{constexpr char s[] = "hello world";return s;
}

然后问了茂盛,应该是返回值是std::string的原因。等于是返回前将字符串数组赋值给了string,最后函数返回了string而不是指针。

即上面的代码可以变换成下面的代码

std::string GetData()
{constexpr char s[] = "hello world";​	std::string str = s;return str;
}

在clion上试了下可以正常运行。

2.2

三、

3.1


总结

未完待续


http://www.mrgr.cn/news/19718.html

相关文章:

  • 从0到1用Docker+Jmeter+InfluxDB+Grafana 搭建性能监控平台【保姆级教程】
  • 网络编程 0904作业
  • 深入理解区间调度问题:从贪心算法到动态规划的加权优化
  • <数据集>安全背心识别数据集<目标检测>
  • 2.门锁_STM32_舵机设备实现
  • el-upload上传文件修改 File 中的name
  • 383. 赎金信
  • 应该怎么从0搭建一个图像识别系统,如果想考计算机的研究生应该如何准备
  • CAS理解和说明
  • 你做的SEO为什么效果不够好?
  • 模型压缩之知识蒸馏
  • 统计学习方法与实战——统计学习方法概论
  • 【技术前沿】智能反向寻车解决方案:提升停车场用户体验与运营效率
  • python如何连接人大金仓数据库
  • 鸿蒙-PC三栏布局
  • 性能测试经典案例解析——网上报税系统
  • 力扣62-不同路径(Java详细题解)
  • 高效易用的仓库进销存管理软件盘点,总有一款适合你!
  • 金仓 KES Plus 不充会员也好用
  • 安装Selenium进行web⾃动化测试