逗号(,)运算符的混淆
在C/C++语言中,逗号运算符的运算顺序是从左到右的,即左结合的,如a, b, c = ((a,) b,) c。
函数调用中,参数的计算顺序是未定义的。所以行为不确定。
在Visual Studio中,而在函数调用中,由于参数运算是从右向左的,所以,先计算右边,再计算左边。
func(a + b, c + d); 则是先计算c + d, 再计算a + b的。
容易错的如:func(++i, i++),则先计算i++, 再计算++i。
在C/C++语言中,逗号运算符的运算顺序是从左到右的,即左结合的,如a, b, c = ((a,) b,) c。
函数调用中,参数的计算顺序是未定义的。所以行为不确定。
在Visual Studio中,而在函数调用中,由于参数运算是从右向左的,所以,先计算右边,再计算左边。
func(a + b, c + d); 则是先计算c + d, 再计算a + b的。
容易错的如:func(++i, i++),则先计算i++, 再计算++i。