VC上是怎样计算这个的?

main(){inti=8;printf("%d\n%d\n%d\n%d\n",++i,--i,i++,i--);}这个程序在TC上运行结果是8778,我能理解在VC上运... main() { int i=8; printf("%d\n%d\n%d\n%d\n",++i,--i,i++,i--); } 这个程序在TC上运行结果是8778,我能理解 在VC上运行结果是8788,我不明白他是怎么算出来的,请问时候有人能告诉我他的计算过程?谢谢!!! 展开
 我来答
丑籁公冶君昊
2020-02-25 · TA获得超过3957个赞
知道大有可为答主
回答量:3264
采纳率:24%
帮助的人:252万
展开全部
首先vc中的函数都是自左向右运行的,所以我们也应该自左向右来看;
其次vc和tc的一个区别就反映在这道题的结果上。
vc是以语句为单位的而不是tc中的以表达式为单位,
所以这道题的计算过程为:
系统先看到的是一个++i,一个--i,进入printf();中是i=8,
所以最左边的应该是8,
这你是知道的,
之后并没有像在tc中一样i值自减一,而是继续向左,打印i的值,自增语句也没运行,继续向左,这回要做--i的自减,之后++i的自加。
运行完了之后就该做上面遗漏下来的i++,i--的运算了。
这个可以用在printf();后面加pirntf("%d",i);结果为8中得到验证(因为总体上看i加了两次又减了两次,最终结果不变)。
计算这类题在vc中应该以整个语句为对象,而不像tc中以表达式为研究对象!!切记!!
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式