C菜鸟求解

来源:百度知道 编辑:UC知道 时间:2024/05/22 04:01:15
main()
{int j=5,q;
q=(++j)+(++j)+(++j);
printf("%d %d",q,,j);
}

运行后q为24 j为8
j为8我知道 ,但q怎么会是24呢,不是21? 求说明
我知道了,++在j前面,运算顺序为++j ++j ++j 那时j已经为8了,再j+j+j=24

j先 +1 3次之后再相加,最后得到24
还有就是不同的编译器得到的答案可能会不一样。。。
在用这类的时候一定要非常小心,建议初学者不要用。。。

呵呵,又是这样的混乱题目(很讨厌...),感觉只有考试才会出这样的题...实际编程中最好不要写会让人混乱的语句...

“q=6+7+8
因为是前++,所以是先++,然后再算”
我也是以上的思维,可是我的编译器算完后结果是22 8

q=6+7+8