当使用C#时,复合赋值运算符(+=、*=等)由相应的二进制运算符自动创建:
如果二进制运算符是非交换的,例如矩阵乘法,那么操作数的顺序就很重要,例如A * B != B * A。因此,如果在这种情况下使用复合辅助运算符,那么了解它们处理操作数的顺序是很重要的。自动创建的复合赋值操作符按什么顺序放置操作
int c = f1(2,3) * f2(3,4) + f3(4,5);
函数求值的顺序是什么?答案取决于编译器。我的问题是:为什么它不使用*,+运算符的从左到右的结合性和优先级?结果是order f1,f2,f3,因此它显然没有使用运算符的结合性和优先级来表示函数的求值顺序。我在考虑这3个函数设置/操作3个全局变量的后果,因此求值顺序很重要。除了,不要像这样写代码(这是一个练习审查问题),我很困惑为什么运算符优先级/结合性不决定函数求值的顺序。提前