这个C语言程序的答案看不懂,希望好心人帮忙解释一下哦,急用,非常感谢!

学习 时间:2026-04-07 21:46:14 阅读:9605
这个C语言程序的答案看不懂,希望好心人帮忙解释一下哦,急用,非常感谢!main(){int i,k; i=3; k=++i+(++i); pintf("k=%d,i=%d\n",k,i); k=i+++(++i); pintf("k=%d,i=%d\n",k,i);}运行后结果是:10 ,5 12 ,7

最佳回答

执着的爆米花

辛勤的小伙

2026-04-07 21:46:14

对于k=++i+(++i),++的优先度比+要高,所以等同于(++i)+(++i),说白了就是i先自加,然后i再自加,然后i再加上i赋给k,两个5相加,等于10对于i+++(++i)和前面就一样了,i的值现在是5,i++可以无视掉,因为它是先参与运算才赋值的,所以知道k被赋值,第一句i自加都是不进行的,然后加上++i,也就是i先自加,现在i的值是6了,i+i就=12,然后++i生效,i=7。

最新回答共有2条回答

  • 自然的飞机
    回复
    2026-04-07 21:46:14

    对于k=++i+(++i),++的优先度比+要高,所以等同于(++i)+(++i),说白了就是i先自加,然后i再自加,然后i再加上i赋给k,两个5相加,等于10对于i+++(++i)和前面就一样了,i的值现在是5,i++可以无视掉,因为它是先参与运算才赋值的,所以知道k被赋值,第一句i自加都是不进行的,然后加上++i,也就是i先自加,现在i的值是6了,i+i就=12,然后++i生效,i=7。

上一篇 "名人名言"的英语怎么说?

下一篇 是不是Don't后要加动词原形?