求解为什么答案是7,4。k++不应该在语句结束后才++吗?


main(){
  int k=2,i=2,m;
   m=(k+=i*=k++);
           printf("y=%d,%d\n",m,i);
}

img

img

和不同的实现有关

这个要从右往左算,先算i*=k++=>i=i*k=4,k++变成3然后算k+=i=3+4=7
不同编译器可能有不同的情况

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632