| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 739 人关注过本帖
标题:一个有矛盾的问题。i,i--,i--的问题、
只看楼主 加入收藏
xiao金刚
Rank: 2
来 自:广东
等 级:论坛游民
威 望:4
帖 子:67
专家分:38
注 册:2010-9-13
结帖率:90.91%
收藏
已结贴  问题点数:20 回复次数:17 
一个有矛盾的问题。i,i--,i--的问题、
昨天看到一道题。后来算了下来,但是在最后一句代码中。却发现好像有点不对劲。下面是代码。
程序代码:
#include <stdio.h>
int main()
{
    int i=5,j;
    clrscr();
    j=i++;
    printf("i=%d,j=%d\n",i,j);
    i=++j;
    printf("\ni=%d,j=%d\n",i,j);
   
    printf("\ni=%d\n",++i);
    printf("\ni=%d\n",--i);
    printf("\ni=%d\n",i++);
    printf("\ni=%d\n",i--);
   
    j=-i++;
    printf("\ni=%d,j=%d\n",i,j);
    j=-i--;
    printf("\ni=%d,j=%d\n",i,j);
    printf("\ni = %d,%d,%d\n",i,i--,i--);
    getchar();
    return 0;
}
最后一句输出的我算到是6 6 5 但是我用TC编译的时候确实4 5 6。请教一下高手、
搜索更多相关主题的帖子: 矛盾 
2010-10-08 12:51
vandychan
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
等 级:贵宾
威 望:18
帖 子:2296
专家分:6418
注 册:2010-8-20
收藏
得分:0 
j=-i++;
这种很有歧义

到底是“出来混迟早要还”还是“杀人放火金腰带”?
2010-10-08 13:07
红色警戒
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:19
帖 子:444
专家分:2967
注 册:2005-11-20
收藏
得分:3 
最后输出为6,6,6吧

2010-10-08 13:09
guguti
Rank: 1
等 级:新手上路
帖 子:15
专家分:6
注 册:2010-8-18
收藏
得分:0 
回复 2楼 vandychan
两个优先级相同 都是右结合性,有啥歧义
2010-10-08 13:10
xiao金刚
Rank: 2
来 自:广东
等 级:论坛游民
威 望:4
帖 子:67
专家分:38
注 册:2010-9-13
收藏
得分:0 
回复 2楼 vandychan
但是程序就是这么写的,我也不知道,看上去是没上面问题。但是到编译的时候就和你心中算的不一样。请高手见解一下。
2010-10-08 13:10
vandychan
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
等 级:贵宾
威 望:18
帖 子:2296
专家分:6418
注 册:2010-8-20
收藏
得分:0 
我也算不到你们的答案

到底是“出来混迟早要还”还是“杀人放火金腰带”?
2010-10-08 13:10
xiao金刚
Rank: 2
来 自:广东
等 级:论坛游民
威 望:4
帖 子:67
专家分:38
注 册:2010-9-13
收藏
得分:0 
回复 3楼 红色警戒
编译结果却是 4 5 6。
2010-10-08 13:10
zghnxzdcx
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:4
帖 子:550
专家分:1176
注 册:2010-4-6
收藏
得分:10 
这代码是谁写的,尽搁这儿误导初学者

printf()函数,占位符对应的参数的自身处理,从右向左进行处理

你永远不可能战胜一个纯傻子,因为他会把你的智商拉到和他同一个水平,然后用他的丰富经验打败你。
2010-10-08 13:14
vandychan
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
等 级:贵宾
威 望:18
帖 子:2296
专家分:6418
注 册:2010-8-20
收藏
得分:0 
根据i,i--,i--
结果必然是 前两个是相同的 后面的比前面的少1

到底是“出来混迟早要还”还是“杀人放火金腰带”?
2010-10-08 13:14
zghnxzdcx
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:4
帖 子:550
专家分:1176
注 册:2010-4-6
收藏
得分:0 
执行完倒数第二个printf,i=6,最后一句里面用的是后减,所以第三个占位参数是6,第二个是5,第一个是4,输出就是4 5 6

你永远不可能战胜一个纯傻子,因为他会把你的智商拉到和他同一个水平,然后用他的丰富经验打败你。
2010-10-08 13:18
快速回复:一个有矛盾的问题。i,i--,i--的问题、
数据加载中...
 
   



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

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