C++ Help: Error: lvalue required as increment operand
C++ Help: Error: lvalue required as increment operand
这里有什么问题。错误是什么意思:需要左值作为增量操作数?
(注意:这是教科书示例)
#include <iostream>
using namespace std;
int main()
{
int num1 = 0, num2 = 10, result;
num1++;
result = ++(num1 + num2);
cout << num1 << " " << num2 << " " << result;
return 0;
}
++x
称为前置自增运算符,x++
称为后自增运算符。
两者都需要一个可修改的 'lvalue' 变量作为操作数。在这种情况下 x
是 'lvalue'.
如果你有一个代码 y = ++x
它具有与
相同的语义
x = x + 1;
y = x;
所以这个特定的代码 ++(num1 + num2)
实际上是错误的,因为 num1 + num2
不是一个有效的可修改变量并且 result = ++(num1 + num2)
的语义将是:
num1 + num2 = (num1 + num2) + 1; // this is invalid
result = num1 + num2;
您可以将其修复为:
int x = num1 + num2;
result = ++x;
或产生相同结果的较短版本:
++(result = num1 + num2)
这里有什么问题。错误是什么意思:需要左值作为增量操作数? (注意:这是教科书示例)
#include <iostream>
using namespace std;
int main()
{
int num1 = 0, num2 = 10, result;
num1++;
result = ++(num1 + num2);
cout << num1 << " " << num2 << " " << result;
return 0;
}
++x
称为前置自增运算符,x++
称为后自增运算符。
两者都需要一个可修改的 'lvalue' 变量作为操作数。在这种情况下 x
是 'lvalue'.
如果你有一个代码 y = ++x
它具有与
x = x + 1;
y = x;
所以这个特定的代码 ++(num1 + num2)
实际上是错误的,因为 num1 + num2
不是一个有效的可修改变量并且 result = ++(num1 + num2)
的语义将是:
num1 + num2 = (num1 + num2) + 1; // this is invalid
result = num1 + num2;
您可以将其修复为:
int x = num1 + num2;
result = ++x;
或产生相同结果的较短版本:
++(result = num1 + num2)