c语言计算i+=j*=k/6什么意思 最后输出结果是多少?

#include<stdio.h>
void main(){
int i=5,j=8,k=20;
i+=j*=k/6;
printf("i=%d\n",i);
printf("j=%d\n",j);
printf("k=%d\n",j);
}

  最后i=29,j=24,k=20。
  表达式 i += j *= k/6 含有三个运算符: += , *= , / 。
  += 和 *= 的优先级是非常低的,相当于 = ;其结合性为←(即从右至左)。
  所以首先计算k/6,k为整数20,所以k/6结果是整数3(k并没有被赋值所以k仍为20);
  剩下 i += j *= 3,根据←的结合性,先算 j * = 3,即 j = j * 3,结果为24(j同时被赋值为24);
  剩下 i += j,即 i += 24,亦即 i = i + 24,i的值变为29。
温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答