C语言的学习问题 6

来源:百度知道 编辑:UC知道 时间:2024/06/04 20:16:01
求输出结果
main()
{
int a=1,b=3,c=5;
if (c=a+b)
printf("yes\n");
else
printf("no\n");
}

main()
{
int a=1,b=3,c=5;
if (c=a+b) //判断c是否等于a+b应该用if(c==a+b)的。这样的话,是将a+b的值赋值给c=4;一定正确的,所以就是输出 yes了
printf("yes\n");
else
printf("no\n");
}

输出结果
yes
因为c=a+b是一个赋值表达式,此时c为4,非零,所以执行第一个语句
如果改成c==a+b,这是比较,那么结果就是
no

....
输出 yes
if(c=a+b) 这个条件并不是判断 而是 把a+b的值赋给c c=a+b=4 为真 所以输出yes