本帖最后由 未来电子 于 2013-3-26 19:32 编辑
int p,q,i,j;
i=j=3;
q=0;
q=++j
printf("%d,",q);
这时候的运算的值是4,
int p,q,i,j;
i=j=3;
q=0;
q=(++j)+(++j);
printf("%d,",q);
这时候的运算的值是10,
int p,q,i,j;
i=j=3;
q=0;
q=(++j)+(++j)+(++j);
printf("%d,",q);
这时候的运算的值是16,
第二个结果就不明白了,会的解释一下
软件换过好几个都是这个情况。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
是的,以前好像看到过类似的讨论,如果是(j++)+(++j)就更有迷惑性,C语言标准没有要求先执行中间的一个+号左边的还是右边的.
个人感觉,写代码一定不要想着按C语言优先级或顺序,因为具体的编译器实现可能不大相同.
我写代码时,宁可多加括号,再分多条语句来写.
一周热门 更多>