#include<stdio.h>
int main()
{
int a,b,c;
a=b=c=-1;
(a=0)&&(b=1)||(c=1);
printf("a=%d,b=%d,c=%d\n",a,b,c);
a=b=c=-1;
(a=0)||(b=1)&&(c=1);
printf("a=%d,b=%d,c=%d\n",a,b,c);
return 0;
}
(a=0)&&(b=1)||(c=1);
a=0会执行,b=1不执行,c=1执行
(a=0)||(b=1)&&(c=1);
a=0执行,b=1执行,c=1执行
=================
规律:
&&表达式,如果左边为假,则右边不执行
||表达式,如果左边为真,则右边不执行
一开始a b c都是-1
(a=0)&&(b=1)||(c=1);从右向左 c=1赋值运算然后(b=1)||(c=1)为真,或有一个为真就行左边b=1不执行
a=0赋值运算 输出a=0,b=-1,c=1