c语言问题 关于if语句的 程序如图,为什么输出的第一个为3,a在开始不是赋值为1了吗?

如题所述

if(a=3)是一个判断语句,但是a=3是一个赋值语句,判断语句里面判断a是否等于3用的是if(a==3)两个等号,所以这句会将a赋值为3并且输出a,也就是3;
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-11-14
f(a=3)printf("%d\n",a); //a=3是赋值表达式
相当于
a = 3;
f(a)printf("%d\n",a); //这时a非零,所以满足条件
先赋值,再判断。
第2个回答  2013-11-14
应该在c语言中=是赋值,==才是判断
相似回答