| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 662 人关注过本帖
标题:求助——谢谢!
只看楼主 加入收藏
yangshuping7
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2008-10-31
收藏
 问题点数:0 回复次数:7 
求助——谢谢!
#include"stdio.h"
main()
{
  int a=0,b=1,c;
  c=(a++)&&(b++);
  printf("a=%db=%dc=%d\n",a,b,c);
}
输出结果为什么是:a=1,b=1,c=0.
搜索更多相关主题的帖子: include 
2008-10-31 10:43
iamah
Rank: 1
等 级:新手上路
威 望:1
帖 子:69
专家分:0
注 册:2008-10-31
收藏
得分:0 
c=(a++)&&(b++)
先做运算再加,所以C=0&&1,即C=0
a=1,
至于b为什么等于1我也不清楚
2008-10-31 11:39
dsr_dbh
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2008-10-29
收藏
得分:0 
如题。。。
c=(a++)&&(b++);
这段代码,先求a++,再求b++的表达式的值,当&&前面的表达式的值为0,就不会进行后面表达式的求值运算,所以,b++表达式并没有求值,也没有对其进行运算。。也就是此时的b并没有进行自加运算。。。
2008-10-31 11:48
enjay007
Rank: 1
来 自:西安
等 级:新手上路
帖 子:12
专家分:0
注 册:2008-10-21
收藏
得分:0 
楼上正解···

注意 i++ 运算是先使用再自加

[[it] 本帖最后由 enjay007 于 2008-10-31 12:00 编辑 [/it]]
2008-10-31 11:59
wanjiang
Rank: 1
等 级:新手上路
帖 子:85
专家分:0
注 册:2008-10-25
收藏
得分:0 
这个问题是这样的,是因为&&的问题,c=(a++)&&(b++),i++是先使用在自加,所以这里a的值就是0;因为&&的函数看到前面的值是0,就可以不去计算后面的公式,直接把c赋值成0,然后a再自加,变成了a=1;c=0;但因为后面的公式没有执行,所以b还是等于1。
2008-10-31 16:42
快速回复:求助——谢谢!
数据加载中...
 
   



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

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