标题:求解逻辑运算的疑惑?
只看楼主
邹阳
Rank: 6Rank: 6
等 级:侠之大者
威 望:4
帖 子:124
专家分:402
注 册:2015-10-8
结帖率:73.68%
已结贴  问题点数:10 回复次数:6 
求解逻辑运算的疑惑?
  #include<iostream>
using namespace std;
int main ()
{
int a=1,b=1,c,d;
c=a--&&b--;
cout<<"a="<<a<<",b="<<b<<",c="<<endl;
return 0;

运算结果的重点在于:为何c=1而不是等于0?
2016-10-05 09:49
yangfrancis
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:贵宾
威 望:141
帖 子:1510
专家分:7661
注 册:2014-5-19
得分:10 
因为你用的是后置自减。这样做会先把a&&b的运算结果赋给c,再去执行a--和b--
2016-10-05 10:02
邹阳
Rank: 6Rank: 6
等 级:侠之大者
威 望:4
帖 子:124
专家分:402
注 册:2015-10-8
得分:0 
回复 2楼 yangfrancis
  明白了,谢谢。

I'm a new comer
2016-10-05 10:11
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:0 
a-- 这个表达式返回a原先的值,副作用是a自增一。
不要将之看成是a和b相运算,而以看成 c = postinc(a) && postinc(b)
2016-10-05 11:56
yangfrancis
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:贵宾
威 望:141
帖 子:1510
专家分:7661
注 册:2014-5-19
得分:0 
回复 4楼 rjsp
讨教一下postinc是什么函数,百度里没发现
2016-10-05 15:47
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:0 
回复 5楼 yangfrancis
随便取的名字,只是告诉你,a++ 就如同函数一样,返回的是一个值,不再是a
2016-10-05 20:04
yangfrancis
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:贵宾
威 望:141
帖 子:1510
专家分:7661
注 册:2014-5-19
得分:0 
是了,是传值
2016-10-06 20:32



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




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

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