c语言中=与==的区别,求详解 a=0,b=0,c=0 if(a=b+c) printf("**\n") else printf("##\n")

如题所述

=表赋值;==表逻辑判断;
a=0,b=0,c=0表示a值为0,b值为0,c值为0
if(a=b+c)表示a的值为b+c的值(这不表逻辑判断),当a赋值成功后,if里返回1(真),则执行printf("**\n") 。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-06-06
= 是赋值运算符
就是右边表达式的值赋值给左边的变量
a=0 就是变量a的值为0
a=b 就是变量a的值为变量b的值

== 是比较运算符
a == 0
就是判断a的值是不是0,a是0时 表达式返回1,不是0时表达式返回0
第2个回答  推荐于2017-10-14
本质在于“=”是赋值符,相当于把其右边的东西给左边。比如a=0,就是把0这个“东西”放到a这个“仓库”里。 而“==”是一种运算,指的是左边的“东西”等于右边的“东西”,在计算机语言中“东西”一般就是“数据”。至于是不是真的等于不用管,重点是在判断。追问

但结果为输出”##“,这是为什么?

追答

我不是学计算机的,题目里的if(a=b+c)在人看来好像是对的,0=0+0嘛,,但在计算机里应该是错的,这就说得通了。你应该是初学C吧,不怕的,,有些问题不懂时放一放,事后回过头来就豁然开朗了。祝学业有成!!

本回答被网友采纳
第3个回答  2012-06-06
=是赋值语句
==是比较语句
还有就是题目里面if(a=b+c)是错误的,这个判断的时候要出错的本回答被提问者采纳
第4个回答  2012-06-06
=
表示赋值
a = 1;
b= a;
意思就是 把1赋值给a 把a的值赋值给 b 所以 a和b 都等于1

==
表示判断 跟 符号 > ,< , >=, <= 一样
a = 1;
b = 1;
if( a==b )
{
printf("**\n")
}
意思是 a如果等于b的话 就输出两个* **
相似回答