for (minus == false ? i = 0 : i = 1; string[i] >= '0' && string[i] <= '9'; ++i)
{
intValue = string[i] - '0';
minus == false ? result = result * 10 + intValue :
result = result * 10 - intValue;
}
error: expression is not assignable screenshot - http://share.pho.to/AarcJ
最佳答案
减去 == 假?由于运算符优先规则,i = 0 : i = 1
将被解析为 (minus == false ? i = 0 : i) = 1
。在评估 minus == false 之后? i = 0 : i
,运算符=
的左侧将成为右值,但赋值运算符必须有一个左值作为其左操作数。
将其更改为 minus == false ? (i = 0) : (i = 1)
关于c - 在函数 strToInt 中正确使用三元运算符 (C),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41747912/