在为像 Arduino 这样的微型计算机编程时,我只是 C 的临时用户,但我有兴趣加深对本地语言的理解。
我知道您可以将 x = x % 10
简写为 x %= 10
,将 x = x + 1
简写为x += 1
。但我无法集中精力将这两个部分结合起来:
x = (x + 1) % 10
如果可能的话,它看起来像什么?
(x += 1) %= 10
?这似乎...如果没有错,那就令人困惑。
最佳答案
表达式 (x += 1) %= 10
在 C 中是不合法的。赋值运算符的结果,无论是 =
还是复合赋值运算符之一, 不是左值。笼统地说,这意味着它不能出现在作业的左侧。
该声明必须分为两部分:
x += 1;
x %= 10;
顺便说一句,(x += 1) %= 10
在 C++ 中有效。
关于组合复合运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55203364/