标题:VC6里面,自增自减用printf输出时,到底是按照啥求值顺序啊??
只看楼主
raygelion
Rank: 1
等 级:新手上路
帖 子:9
专家分:3
注 册:2015-3-4
结帖率:75%
已结贴  问题点数:20 回复次数:2 
VC6里面,自增自减用printf输出时,到底是按照啥求值顺序啊??
看视频教程的时候,举了如下例子,叫我们注意用Printf函数输出时,注意输出列表中的求值顺序问题,但没有说明到底是什么顺序:
#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
7
8
8
-8
-8

看到第一行输出数字是8,应该就知道不是从左开始执行的。
于是我假设是从右开始执行,对程序做了如下修改

#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);
}

输出结果:
-8
-7
8
7
7
8

还是不对啊,到底求值顺序是什么?求高手指点!

[ 本帖最后由 raygelion 于 2015-3-8 17:27 编辑 ]
搜索更多相关主题的帖子: include 视频教程 
2015-03-08 17:13
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:216
帖 子:2039
专家分:11273
注 册:2014-12-6
得分:20 
这可能还是涉及到编译器的问题,一般按照c规则分析结果应该是:9,8,8,9,-8,-9。

能编个毛线衣吗?
2015-03-08 17:59
raygelion
Rank: 1
等 级:新手上路
帖 子:9
专家分:3
注 册:2015-3-4
得分:0 
回复 2楼 wmf2014
 ̄へ ̄C语言不容易学啊
2015-03-08 19:58



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-442441-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.013494 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved