若有定义:int m=5,n=3;则表达式(m+1,n+1,(--m)+(n--))的值
答案是5.4.7 问题是为什么?
这是用两个逗号将三个表达式连成的一个逗号表达式。
计算该逗号表达式值时,从左至右逐一计算每个表达式的值。该逗号表达式的值是最后一个表达式的值,该表达式类型也是最后一个表达式的类型。所以这个表达式(m+1,n+1,(--m)+(n--)),m的最后的值(--m)之后m是4,n的值(n--)之后n还是3,所以m+1 的值是 5;n+1的值是4,(m+1,n+1,(--m)+(n--)) 最终的值应该是 5,4,7
计算该逗号表达式值时,从左至右逐一计算每个表达式的值。该逗号表达式的值是最后一个表达式的值,该表达式类型也是最后一个表达式的类型。所以这个表达式(m+1,n+1,(--m)+(n--)),m的最后的值(--m)之后m是4,n的值(n--)之后n还是3,所以m+1 的值是 5;n+1的值是4,(m+1,n+1,(--m)+(n--)) 最终的值应该是 5,4,7
温馨提示:答案为网友推荐,仅供参考
第1个回答 2012-11-21
这是因为那个自减符号——m是先将m减一,然后再来计算m+1,n+1,(--m)+(n--),而n--是先计算完之后,n再自减1.有一个顺序问题在这