我正在阅读《K&R C 编程语言》,第 2.10 章中指出:
“如果 expr1 和 expr2 是表达式,那么
Run Code Online (Sandbox Code Playgroud)expr1 op= expr2相当于
Run Code Online (Sandbox Code Playgroud)expr1 = (expr1) op (expr2)除了 expr1 仅计算一次。”
op=指的是可以与赋值一起使用的二元运算符+=,-=例如 等(并且在第二行中 op 仅表示二元运算符,例如+)
我的第一个小困惑是它expr1必须只是一个变量(“左值”)?否则我们如何将结果分配给更大的表达式?expr1但我的主要问题是“仅计算一次”是什么意思?如果我们写:
expr1 = (expr1) op (expr2)
Run Code Online (Sandbox Code Playgroud)
代替
expr1 op= expr2
Run Code Online (Sandbox Code Playgroud) c ×1