++&--基础问题
下面一个程序,我始终搞不懂,请大伙指点一下。main()
{
int x = 8, y = 8, p, q;
p = (x++) + (x++) + (x++);
q = (++y) + (++y) + (++y);
printf( "%d, %d, %d, %d", p, q, x, y );
}
无疑这是个基础问题,但是我始终理解不了为什么给出的答案是 24,33,11,11呢?主要在于p、q上,运算优先级里规定括号先算,然后才能参加加法运算,这样理解p应该是30,q应该是30.不知道我这样理解对不对,请指正。
另外p、q的表达式是否可以去掉括号,效果应该是一样的。