返回值的增量

时间:2014-04-11 06:06:04

标签: c++

我已经定义了这样的函数:

int test(int n) {
    const int b = n;
    return b;
}

在主要功能中,我使用这样:

 int temp = test(50)++;

g ++报告错误:

  

错误:左值作为递增操作数

实际上,我对此完全感到困惑。您想给我一些提示或向我解释一下吗?

4 个答案:

答案 0 :(得分:2)

您只能将++应用于左值(至少是内置类型)。函数的返回值可以是左值 if 如果它返回引用,但是否则它是rvalue(在这种情况下,你不能应用++它)。

答案 1 :(得分:0)

test返回的值为rvalue。您不能在其上使用增量运算符(++)。您可以将您的主叫代码更改为:

int temp = test(50);
temp++;

int temp = test(50) + 1;

答案 2 :(得分:0)

一旦常量值被初始化,你就不能改变那个值。所以它给出错误尝试执行相同的函数而不增加const值。

答案 3 :(得分:0)

'加加'运算符(几乎)等于' + = 1'那就是“为变量赋值,其先前的值增加1”。值返回不是变量,因此它不能是赋值的左侧参数。这就是增量运算符在这里不适用的原因。只是做

t = test(50) + 1;

t = test(50);
t ++;