c语言计算i+=j*=k/6什么意思 最后输出结果是多少?
#include<stdio.h>voidmain(){inti=5,j=8,k=20;i+=j*=k/6;printf("i=%d\n",i);printf("j=%d...
#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);
} 展开
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);
} 展开
1个回答
展开全部
最后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。
表达式 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。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询