做了一段测试代码如下:
#include
int main(void)
{
int i=2;
int j=3;
i*=j+8;
printf("%d\n",i);
}
在VC++和GCC以及TCC下运行的结果都是22。
也就是等同于:i = i * (j+8) = 2 * (8 + 3 )= 2 * 11 = 22
所以,i*=j+8在c语言中是按照以下方法计算的: i = i * (j+8)
*=的优先级是比+低的,所以应该是i*=(j+8)这样计算
i = i*(j+8)
表达是错误的,不能算。