C语言自加自减问题

请教各位高手~i=3printf("%d,i++)输出为什么是3,而不是4?还有,若i=5那-i++输出是怎么算的?是按(-i)++运算,还是按-(i++)运算?我看的那... 请教各位高手~
i=3
printf("%d,i++)
输出为什么是3,而不是4?

还有,若i=5
那-i++ 输出是怎么算的? 是按(-i)++运算,还是按-(i++)运算?
我看的那本书上前后答案不一致,把我弄混了- -!
好了再追加20分~
i=3
printf("%d,i++)
懂了,是输出表达式的值3,不是i的值4,对吧?

而-i++也是,i=5
printf("%d,-i++)
输出表达式的值是-5,而i的值是-6 对吗?
展开
 我来答
milkhorse
2010-09-11 · TA获得超过128个赞
知道答主
回答量:242
采纳率:0%
帮助的人:131万
展开全部
printf(“%d”,i++)按顺序是先把i赋给%d,然后执行++,所以输出3,而不是4,如果改成++i,输出的就是4,可以做个试验确认一下。
同理,-i++按顺序先执行-i。然后++,所以应是(-i)++
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
秀潇逢6992
2010-09-11 · TA获得超过170个赞
知道答主
回答量:116
采纳率:0%
帮助的人:100万
展开全部
如果你想输出为4,可以把“i++”改为“++i”。
关于后面那个,应该是-(i++)如果你输入的是5,得到的结果是-5,这个我也不太懂,不过运行一下的确是这样。(-i)++;这个语句本身就是错误的,不妨试运行一下就知道了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
woshinia777
2010-09-11 · TA获得超过915个赞
知道小有建树答主
回答量:495
采纳率:0%
帮助的人:353万
展开全部
i++操作意思是在i被使用后才+1,也就是说当前使用时事3,之后使用i时就是4了。++i的话就是4了,这个是先+1再使用。
按-(i++)运算,这个你可以参考各运算符的优先级顺序。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2010-09-11
展开全部
类似的问题前几天有人问过。
链接如下:
http://zhidao.baidu.com/question/181867718.html

i++ ++是自增。表达式求值时用i原来的值,用完之后,i再自增。

所以printf("%d,i++)
先把3打印出来。然后i自增变成了4.
如果是
printf("%d,i++)
printf("%d,i)
则会输出3 4.

关于-i++,你去看我上面给的链接吧。
都是我回答的。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
rachel_0516
2010-09-11 · TA获得超过141个赞
知道小有建树答主
回答量:189
采纳率:0%
帮助的人:90.5万
展开全部
i=2;a=i++;先把i的值赋给a,所以a=2;然后赋值过后,i自增为3;

若a=++i;则是i先自增然后再赋值给a.

(-i)++
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式