在学习操作符优先级时,我遇到了 x * y++
,++
的优先级应该比 *
高,所以应该等同于 (x) * (y++)
,但是我在执行以下代码时,发现二者结果不相等。不知道哪里有问题,请指教!
#include
int main()
{
int a = 1;
int b = 2 * a++;
int c = (2) * (a++);
printf("%d %d\n", b, c);
return 0;
}
++在前先进行自增运算再进行其他运算,++在后先进行其他运算再进行自增运算
所以 x * y++ 同于 (x) * (y)
x * ++y 同于 (x) * (++y)