C语言里关于自增自减运算符的问题

请帮忙解释一下都会输出什么?求详细解答。... 请帮忙解释一下都会输出什么?
求详细解答。
展开
 我来答
时尚装饰莱儿
2014-02-04
知道答主
回答量:7
采纳率:0%
帮助的人:9万
展开全部

我在vc6·0上编写了一下 这是截图

首先是前两个7 因为i++是先赋值在进行加一运算,++i是先加一然后再进行赋值操作,所以a,b中储存着值是7,此时i的值是8

然后是后面两个7,同理 a为7,b为7,此时i为6

同理,-i++中因为++在后面 所以先输出-6,然后在把i加一 这是i变成了7

最后 根据输出格式 输出了  i=7;



金色潜鸟
推荐于2018-04-12 · TA获得超过3.2万个赞
知道大有可为答主
回答量:1.3万
采纳率:89%
帮助的人:5658万
展开全部
前缀加/减 与 后缀加/减 的不同 -- 在于表达式 里 的 值。

表达式 里, 前缀加 要先自增, 后使用。
表达式 里, 前缀减 要先自减, 后使用。
表达式 里, 后缀加 要先使用原值。出了表达式后 再自增。
表达式 里, 后缀减 要先使用原值。出了表达式后 再自减。

a=++i; 前缀加 要先自增, 后使用。执行: i=i+1; a=i ; ( i=7; a=7;)
b=i++; 后缀加 要先使用原值。出了表达式后 再自增。执行 b=i; i++; (b=7;i=8)
a=--i; 前缀减 要先自减, 后使用。i=i-1; a=i; (i=7;a=7)
b=i--; 后缀减 要先使用原值,执行. b=i.i=i-1; (b=7; i=6)
printf("%d\n",-i++); 后缀加 要先使用原值。出了表达式后 再自增. 打印 -i; (-6) 出了表达式 i=i+1;(i=7)
printf("i=%d\n",i); 打印 i=7
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
psxf91
2014-02-04 · TA获得超过428个赞
知道小有建树答主
回答量:558
采纳率:100%
帮助的人:484万
展开全部
第一行 i为6 a和b是垃圾值。
第二行a赋予i自增以后的副本a,a为7,而i为7,b被赋给i的副本,b为7,然后i又自增,i为8
打印出来a就是7 b是7 这个时候i是为8的
然后a被赋予i自减以后的副本,就是7,而i这时候为7,b又被赋予i的副本为7,然后i又自减为6。
再次打印,a为7,b为7,这时候i为6
下面根据优先级i++先算,那么,i++表达式的值为i的副本,那么就是6,然后负号表达式就是-6。这个-6传给printf,打印出-6,同时i也自减了,这个时候i为5。
再次打印,i为5。
更多追问追答
追问
解释得很清楚哈 O(∩_∩)O谢谢~
不过最后一行的输出不对~
追答
我是用脑袋运行的代码,过一会编译一下,确认一下
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式