在测试的表达式中使用逗号运算符会导致左参数在没有副作用时被忽略



当我在C++中为for循环定义了两个条件时,我得到了这个警告。这是代码

int a;
cin >> a;
int n;
cin >> n;
int b = pow(10, a - 1), c = pow(10, a - 1) * 1.2;
for (int i = b; i < c, i <= n; i++)
//do sth

有人知道这个警告是关于什么的吗?

带有逗号运算符的表达式返回第二部分的值(本例中为i <= n(。忽略第一部分的值
阅读此处有关逗号运算符的信息:
https://en.wikipedia.org/wiki/Comma_operator

如果您希望两个条件都为true(或者根据您的任务使用其他运算符(,请使用i < c && i <= n

最新更新