函数的返回值的类型是引用类型和非引用类型的区别

1、函数的返回类型为非引用类型

       当函数的返回类型为非引用类型时,其返回值可以是局部对象,也可以是求解表达式。且其返回值会在调用该函数处复制给临时对象,然后将这个临时对象返回。(按值返回和按值传递是一样的,返回和传入的是该对象的一个副本)。

2、函数的返回类型为引用类型

       当函数返回类型为引用类型时,没有复制返回值,相反,其返回的就是对象本身。千万不要返回局部对象的引用和不要返回指向局部对象的指针的值(这里讲的局部对象是指在该函数内定义的)。原因是:当函数执行完毕时,系统将会自动释放分配给局部对象的存储空间。此时局部对象的引用就会指向不确定的内存,返回指向局部对象的指针也是一样的。当函数结束时,局部对象被释放,返回的指针就变成了不再存在对象的悬浮指针。

      返回类型是引用时,要求在函数的参数中,包含有以引用方式或指针存在的且需要被返回的参数。返回类型是引用和返回类型是指针是不一样的,以引用方式操作的对象或指针指向的那个对象,其返回值是一个对象或者是指针指向的那个对象(*p)。如果在返回类型前面加上const关键字,表示该函数的返回值不能够立即修改。

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值