微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c – 如果一个函数返回一个int,可以分配一个int吗?

如果函数返回一个int,可以通过int值赋值吗?我没有看到为某个函数赋值是太意义的.
int f() {}

f() = 1;

我注意到,如果函数返回一个对int的引用,那就可以了.它只限于int吗?其他类型怎么样?或任何其他规则?

int& f() {}

f() = 1;

解决方法

一个函数返回一个整数by-value,它是一个r值.您一般不能分配到r值.第二个f()返回一个整数的引用,它是一个l值,所以你可以指定它.
int a = 4,b = 5;

int& f() {return a;}

...
f() = 6;
// a is 6 Now

注意:您不要为函数分配一个值,只需将其赋值给其返回值.
注意以下几点:

int& f() { int a = 4; return a; }

你返回一个临时的引用,这在函数返回后不再有效.访问引用将引用未定义的行为.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐