逗号(,)运算符的混淆

在C/C++语言中,逗号运算符的运算顺序是从左到右的,即左结合的,如a, b, c = ((a,) b,) c。

函数调用中,参数的计算顺序是未定义的。所以行为不确定。

在Visual Studio中,而在函数调用中,由于参数运算是从右向左的,所以,先计算右边,再计算左边。

func(a + b, c + d); 则是先计算c + d, 再计算a + b的。

容易错的如:func(++i, i++),则先计算i++, 再计算++i。

posted @ 2015-12-11 15:30  宛晓南  阅读(157)  评论(0)    收藏  举报