我已经定义了这样的函数:
int test(int n) {
const int b = n;
return b;
}
在主要功能中,我使用这样:
int temp = test(50)++;
g ++报告错误:
错误:左值作为递增操作数
实际上,我对此完全感到困惑。您想给我一些提示或向我解释一下吗?
答案 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 ++;