鱼C论坛

 找回密码
 立即注册
查看: 5073|回复: 9

两个一样意思的程序输出结果不一样

[复制链接]
发表于 2014-5-20 22:17:37 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include<stdio.h>
void main()
{
        int i=8;
        printf("%d\n %d\n %d\n %d\nd %d\n",++i,--i,i++,i--,-i++,-i--);
}

#include<stdio.h>
void main()
{
        int i=8;
        printf("%d\n",++i);
        printf("%d\n",--i);
        printf("%d\n",i++);
        printf("%d\n",i--);
        printf("%d\n",-i++);
        printf("%d\n",-i--);
        }
这两个的结果为什么会不一样呢?请高手指点,谢谢!


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

使用道具 举报

发表于 2014-5-21 18:44:20 From FishC Mobile | 显示全部楼层
和算法优先级有关!

评分

参与人数 1鱼币 +1 收起 理由
Angel丶L + 1 整洁

查看全部评分

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

使用道具 举报

发表于 2014-5-28 00:58:40 | 显示全部楼层
请不要写这种语句!理由很简单,它既不好理解又不好维护,最重要的是它的结果会因编译器的不同而不同。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-5-29 12:55:26 | 显示全部楼层
#include<stdio.h>
// 注:不同的编译器可能给的值不一 不过运算的规则是不变的 我用的是vc++
void fun()
{
         int i=8;
     printf("%d\t%d\t%d\t%d\t%d\t%d\t",++i,--i,i++,i--,-i++,-i--); //这个涉及到-- ++ 的优先不同,-- 比++的优先高,
   printf("\n\n\n\n");             //故 先算--i 输出7  再算++i 故输出8
      
}

#include<stdio.h>
void main()
{
  fun();
         int i=8;
         printf("%d\t",++i); // i先自增1为9
         printf("%d\t",--i); // i先自减1为8
         printf("%d\t",i++); // i不变输出8;(但是下一步的i已增为9)(i ++是先用i的值再自增)
         printf("%d\t",i--); // i不变输出9 (下一步i减为8)
         printf("%d\t",-i++);//输出-8 (下一步i==-7)
         printf("%d\t",-i--);//输出-9
   printf("\n\n\n\n");
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-6-3 20:55:38 | 显示全部楼层
我初学,什么都不懂,谢谢各位指点{:1_1:}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-6-5 00:04:27 From FishC Mobile | 显示全部楼层
这种。。纠结的问题。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-6-5 11:30:34 | 显示全部楼层
当然不一样,一个是直接就取值了,一个是一边取值一边改值,效果就不一样了。。。

点评

主要是编译器优化问题 或者像二楼的那种说法 算法优化 指的是同个一个问题  详情 回复 发表于 2014-6-5 13:00
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-6-5 12:59:27 | 显示全部楼层
这就是为什么我曾一再强调一定要把自增自减作为一个独立的代码来写
和编译器的优化有关
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-6-5 13:00:14 | 显示全部楼层

主要是编译器优化问题 或者像二楼的那种说法 算法优化 指的是同个一个问题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-6-5 14:21:25 | 显示全部楼层
牡丹花下死做鬼 发表于 2014-6-5 13:00
主要是编译器优化问题 或者像二楼的那种说法 算法优化 指的是同个一个问题

用debug就不优化了。。。呵呵
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-30 02:16

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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