zoukankan      html  css  js  c++  java
  • c/c++不能返回局部对象和局部变量的指针或引用解释

    在编写c/c++代码时,调用函数的书写让程序变得整洁易读,但是调用函数的返回值(局部变量的返回值,变量,结构体,数组等)也有注意事项。c/c++严禁返回局部变量的指针或引用。

    其实函数的返回值的规则非常好记:

      函数的返回值可以是数值和全局变量的指针或引用。

      函数的返回值不能是局部对象或者是局部变量的指针或引用!!!

    原因:

      调用函数的局部变量是存在于栈中的,在执行完调用函数之后会将局部变量的空间释放,也就是调用函数执行后局部变量将不存在与内存中。如果返回的是局部变量的指针或者是引用。返回给接收对象的是局部变量的地址,而这个地址的资源已经被释放了,也就是接受的返回值都将是空值(因为被释放),会出错。

    补充:局部变量返回指针或引用都是地址,而返回数值是值。(概念不同)

  • 相关阅读:
    dns解析后ping的居然不是自己的ip
    Ubuntu修改默认使用的bash
    安装 libbpg
    libnccl安装
    安装opencv
    tcpdump使用
    jQuery类操作
    jQuery对象和DOM对象的相互转换
    jQuery入口函数
    什么是外边距重叠?重叠的结果是什么?
  • 原文地址:https://www.cnblogs.com/spring-hailong/p/6135589.html
Copyright © 2011-2022 走看看