鱼C论坛

 找回密码
 立即注册
查看: 2469|回复: 13

printf格式化输出i++,i--的一个疑惑?

[复制链接]
发表于 2013-7-30 10:49:15 | 显示全部楼层 |阅读模式
1鱼币
#include <stdio.h>
void main(){
        
int i=8;
printf("%d\n%d\n%d\n%d\n%d\n%d\n",++i,--i,i++,i--,-i++,-i--);
}
以上程序输出的结果为什么是以下结果啊:
8
8
7
8
-7
-8
哪位大虾能讲解一下吗?
为什么不是下面这个结果咧:
9
8
8
9
-8
-9

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-7-30 13:07:12 | 显示全部楼层
{:7_174:}不用纠结这个。我用VC6运行的结果就跟你的不同。

编译器不同结果不同。这样写没什么实际意义。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-7-30 15:29:31 | 显示全部楼层
编译器不同,如果你懂汇编,可以把它转成汇编代码来看~
就可以明白了~~~~~~~~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-7-30 19:35:34 | 显示全部楼层
结果对着了,你想错了,printf这个函数有个特点,从左往右显示,但是从右往左计算,当然这个确实和编译器有关,看我的结果:
131.JPG
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-7-31 23:51:51 | 显示全部楼层
又是这个问题~ 在论坛里搜i++ 大把答案~~几乎每个初学者都遇到过~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-8-2 17:27:06 | 显示全部楼层
printf 是从右向左计算的,先是-i--,-i++,i--。这样算就对了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-8-8 13:58:03 | 显示全部楼层
本帖最后由 牡丹花下死做鬼 于 2013-8-8 13:59 编辑

  拜托啊 大家怎么都这么纠结这个呢
  用郝斌老师的话 i++ i-- ++i --i 都写成一个独立的语句那样 --i = i-- ++i = i++ 就不用纠结了
  写出楼主你这样 有实际意义吗??而且编译器还有自左向右和自右向左的区别 还有编译优化的问题 ......
  有时候
#include<stdio.h>
void main()
{
    int i = 5,j = 0;
    j = i++ + i++ + i++;
    printf("%d\n",j);
}
输出的结果是15 这就是编译优化的结果 据说是先加起来 得到J在自增I
反正这玩意事情很多的
我是建议想郝斌老师说的写成一个独立的语句那就万事大吉了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-8-8 22:39:17 | 显示全部楼层
无聊的问题,你只要知道不会有人在实际开发的时候这样写,就算是再牛逼的程序员,也不会马上知道的。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-8-10 11:08:32 | 显示全部楼层
真心建议楼主看看我的帖子:http://bbs.fishc.com/forum.php?m ... 6orderby%3Ddateline
申请最佳啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-8-15 14:12:49 | 显示全部楼层
这个问题吧是因为这样滴:printf()函数的执行规律是从右至左的,也就是先算-i--,然后-i++,i--,i++,--i,++i
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-8-25 10:29:22 | 显示全部楼层
编译器不同结果不同,只要知道怎么算就行,在使用中避免,和编写器有关的写法!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-8-28 23:10:41 | 显示全部楼层
总纠结 ++ 这个东西的连用,没啥劲。
多看其他的代码,比这个实际
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-8-29 08:23:53 | 显示全部楼层
讲过的呀,从右向左运算的结果
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-7-26 09:36:03 | 显示全部楼层
格式天下 发表于 2013-7-30 19:35
结果对着了,你想错了,printf这个函数有个特点,从左往右显示,但是从右往左计算,当然这个确实和编译器有 ...

从右往左计算也不对啊!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-26 05:41

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表