c语言数组c语言 if(a=b=c==0) break;代表什么意思啊! C语言 a=b=c=0;x=35 if(!a)x--;

作者&投稿:狐中 (若有异议请与网页底部的电邮联系)
if(a=b=c==0) break;
当C==0时,跳出循环;并且a=1,b=1。
当C!=0时,a=0,b=0循环继续
可以这样看a=b=(c==0)
c==0 是判断语句 成立为0,不成立为非0
具体如下的例子:
#include<stdio.h>
void main()
{
int a,b,c = 0;
if(a = b = c == 0) printf("a = b = c == 0\n");
printf("a = %d,b = %d,c = %d\n",a,b,c);

c = 1;
if(a = b = c == 0) printf("a = b = c == 0\n");
printf("a = %d,b = %d,c = %d\n",a,b,c);

if(a = b = 2) printf("a = b = 2\n");
printf("a = %d,b = %d\n",a,b);
}
这个例子应该比较清楚了啊,运行一下看一哈结果就更明白了

if(a=b=c==0) break;

可以等价为: if( a == 0 ) break;

因为a 值是 b 给的,b的值是c给的.

说明:
= 是赋值表达式,== 是条件表达式(判断), = 的优先级高于 ==

c等于零,c赋给b又赋给a,这就是说三者都是零时,跳出循环。

如果c等于0,那么a和b全是1
否则a和b全是0

是一个if条件句循环

c语言 if(a==b==c==0)什么时候执行?或者,a==b==0什么意思?~

a==b是一个逻辑表达式,其值为1或0
所以,若a,b不相等,则“a==b==0”的值为“真”即“0==0”成立。

a=0,!a就是不等于0,那么第一个就是真 执行 x=34。
b,c都等于0,if不执行还函数。
输出的结果为4的原因是
多个 if语句同时执行 输出的是最后一个 若有错误请指正