菜鸟c语言编程遇到的问题

来源:百度知道 编辑:UC知道 时间:2024/06/06 04:33:35
/* Note:Your choice is C IDE */
#include "stdio.h"
void main()
{
int a=2,b=2;
float x=1,y=2.5;
printf ("%d",x=1&&a==b);

}
此处printf ("%d",x=1&&a==b); x=1不加括号运算,结果为什么为0?
我分析的;根据优先级先a==b成立,结果为1;再1与1成立,结果为1,x=1成立.结果应为1...我错在什么地方?请为我指点迷津
%d为十进制整数输出、输入,
%f为什么情况呢,还有其他的情况么?

你的x定义的是float型的,你说的计算过程没错,但是如果直接输出printf("%d",x);得到的输出也是0
你可以把printf ("%d",x=1&&a==b);
改成printf ("%f",x=1&&a==b);
得到的输出就是1.000000

==的优化级是比&&高,可是&&的优先级却比=高.....

你上面已为x初始值1了,下面可以改成 x && a==b 试试...

数据类型不匹配,结果自然是null,而系统定义的null的值就是0,鉴定完毕!

x=1是赋值语句,如果改为x==1,那么结果就为1!

你定义的X为FLOAT型,输出用%f