标题:求助——谢谢!
只看楼主
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



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




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

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