#include<stdio.h>
main()
{
int a=1,b=1,c=1;
if (a--||b--&&--c)
printf(" %d,%d,%d\n", a, b, c);
else
printf(" %d,%d,%d\n", a, c, b);
}
a--是先用a计算,再减去1,--c正好相反
由于a--不是0,所以if成立,b和c都不改变值
输出为0,1,1
a--和b--是先运算再付值
--c是先付值再运算
所以判断的条件是 1或者1并且0
不对
可以理解为
a || b && c-1
然后
a = a - 1
b = b - 1
if (a--||b--&&--c)我理解为a-1或者b-1和1-c
是不完全对的,对的地方在--确实跟-1有关系,所以很容易和-1弄混。
不过a--以及b--是在执行完下面所跟语句后再-1,而--c,是先-1再执行下面语句。
if (a--||b--&&--c)
printf(" %d,%d,%d\n", a, b, c);
可以理解为:
c=c-1;
if (a||b&&c)
printf(" %d,%d,%d\n", a, b, c);
a=a-1;
b=b-1;
望采纳!!