注册 登录
编程论坛 C++教室

求解逻辑运算的疑惑?

邹阳 发布于 2016-10-05 09:49, 1617 次点击
  #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?
6 回复
#2
yangfrancis2016-10-05 10:02
因为你用的是后置自减。这样做会先把a&&b的运算结果赋给c,再去执行a--和b--
#3
邹阳2016-10-05 10:11
回复 2楼 yangfrancis
  明白了,谢谢。
#4
rjsp2016-10-05 11:56
a-- 这个表达式返回a原先的值,副作用是a自增一。
不要将之看成是a和b相运算,而以看成 c = postinc(a) && postinc(b)
#5
yangfrancis2016-10-05 15:47
回复 4楼 rjsp
讨教一下postinc是什么函数,百度里没发现
#6
rjsp2016-10-05 20:04
回复 5楼 yangfrancis
随便取的名字,只是告诉你,a++ 就如同函数一样,返回的是一个值,不再是a
#7
yangfrancis2016-10-06 20:32
是了,是传值
1