| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 988 人关注过本帖
标题:看似简单,但结果出人意料,高手来看一下
只看楼主 加入收藏
bingfengX
Rank: 2
等 级:论坛游民
帖 子:29
专家分:40
注 册:2011-12-6
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:13 
看似简单,但结果出人意料,高手来看一下
#include <stdio.h>
main()
{
  int a=1;
  printf("%d %d",a,a+=1);
}
为什么输出的是2 2 ,而不是 1 2 呢?谁来祥细说一下。
搜索更多相关主题的帖子: include 
2011-12-06 22:08
hxcet
Rank: 4
等 级:业余侠客
帖 子:78
专家分:229
注 册:2011-11-15
收藏
得分:0 
因为优先运算了a+=1,故此后a=2
2011-12-06 22:15
bingfengX
Rank: 2
等 级:论坛游民
帖 子:29
专家分:40
注 册:2011-12-6
收藏
得分:0 
回复 2楼 hxcet
为什么会优先运算a+=1呢?祥解,求祥解。。。
2011-12-06 22:17
luchar
Rank: 9Rank: 9Rank: 9
来 自:南京
等 级:蜘蛛侠
帖 子:279
专家分:1263
注 册:2011-11-3
收藏
得分:5 
这个是编译器决定的,编译器决定从右往左计算,就从右往左
编译器决定从左往右,就从左往右
2011-12-06 22:24
小鱼儿c
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:14
帖 子:852
专家分:1317
注 册:2011-4-1
收藏
得分:0 
恩恩,所以这种题目没有意思。。。
而且程序考虑移植的话主要不要写中代码

用心做一件事情就这么简单
2011-12-06 22:31
周1992
Rank: 2
等 级:论坛游民
帖 子:70
专家分:60
注 册:2011-3-18
收藏
得分:0 
优先级问题
2011-12-06 22:34
bingfengX
Rank: 2
等 级:论坛游民
帖 子:29
专家分:40
注 册:2011-12-6
收藏
得分:0 
又发现了另外一种说法 顺序点问题
2011-12-06 22:53
wigen2008
Rank: 2
等 级:论坛游民
帖 子:3
专家分:15
注 册:2011-12-6
收藏
得分:5 
以下是引用bingfengX在2011-12-6 22:08:59的发言:

#include
main()
{
  int a=1;
  printf("%d %d",a,a+=1);
}
为什么输出的是2 2 ,而不是 1 2 呢?谁来祥细说一下。
参数是栈结构,所以会先计算a+=1,然后求a的值,a的值就是2了。
所以输出的是2,2。
这个回答不知道你是否满意?
2011-12-06 23:15
bingfengX
Rank: 2
等 级:论坛游民
帖 子:29
专家分:40
注 册:2011-12-6
收藏
得分:0 
回复 8楼 wigen2008
我先去问一下度哥什么是栈结构。。。
2011-12-06 23:23
hnuhsg1226
Rank: 9Rank: 9Rank: 9
来 自:中国
等 级:蜘蛛侠
威 望:2
帖 子:314
专家分:1314
注 册:2011-3-27
收藏
得分:0 
这种问题是个老问题了,以后别这样写就行了

我的地盘
2011-12-07 09:29
快速回复:看似简单,但结果出人意料,高手来看一下
数据加载中...
 
   



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

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