返回信息流原以为primer 4写错了,结果自己试了一下,的确没问题。
int &func(int *arr, int n)
{
return arr[n];
}
请大牛指教![ema32]
这是一条镜像帖。来源:北邮人论坛 / cpp / #42854同步于 2010/8/29
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
返回值为int &型的函数为什么返回int *型值不报错?
zslb111
2010/8/29镜像同步8 回复
订阅后,新回复会通过你的通知中心匿名送达。
8 条回复
【 在 zwp 的大作中提到: 】
: 这是返回int *嘛?
: 明明就是返回int嘛。。。
: --
: ...................
是我说错了..
形参初始化的时候a[3]是用指针访问了数组的一个值,得到的应该是一个int。int值怎么能当做& int返回呢?是生成了一个临时int &变量引用a[3]么?
没错吧。这就是引用返回值啊。。返回的就是arr[n]的引用嘛。。。省去构造临时变量,赋值,析构的过程,直接就对arr[n]进行返回,不过引用返回值不要返回临时变量。
【 在 xiecaiji 的大作中提到: 】
: 没错吧。这就是引用返回值啊。。返回的就是arr[n]的引用嘛。。。省去构造临时变量,赋值,析构的过程,直接就对arr[n]进行返回,不过引用返回值不要返回临时变量。
: --
: 目前暂时只喜欢我头像
: ...................
函数的返回值类型和return的对象要相同啊。arr[3]就相当于*(arr+3),和引用并没有关系啊
int a;
int &b = a;
int c[10];
int &d = c[3];
是这样的吧。
【 在 zslb111 的大作中提到: 】
: 函数的返回值类型和return的对象要相同啊。arr[3]就相当于*(arr+3),和引用并没有关系啊
【 在 windfail 的大作中提到: 】
: int a;
: int &b = a;
: int c[10];
: ...................
恩。。。lz看看这个贴就明白了
楼上是这个意思么?----相当于返回的是自动给a[n]这个值所附的指针,仍然是int*型
【 在 xiecaiji 的大作中提到: 】
: : int a;
: : int &b = a;
: : int c[10];
: ...................