返回局部变量

我们把值时(smyarray,10),value()返回一个参考的内部smyarray阵列第十元素。main()然后使用这些参考指定元素的值5。

虽然这是有点做作的例子(因为你可以直接访问smyarray.anvalue),一旦你了解课程你将发现更多的用途,通过引用返回值。

返回地址

返回的返回地址到地址的变量来调用。就像通过地址,返回地址只能返回一个变量的地址,而不是文字或表达式。喜欢引用返回,返回地址的快。然而,与引用返回,返回的地址不能返回局部变量:

1
2
3
4
5
int* DoubleValue(int nX)
{
    int nValue = nX * 2;
    return &nValue; // return nValue by address here
} // nValue goes out of scope here

你可以在这里看到,N值超出范围后,它的地址返回给调用者。最终的结果是,对方最终非分配的内存地址,它会引起很多问题,如果使用。这是最常见的编程错误,新的程序员。许多新的编译器会给出一个警告(不是错误)如果程序员试图返回的地址-然而局部变量,有相当多的方式来欺骗编译器里让你做违法的事情而不产生警告,所以负担是程序员来确保他们返回地址是一个有效的变量在函数返回。

返回的地址通常是用来返回给调用者新分配的内存:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值