C语言赋值问题

来源:百度知道 编辑:UC知道 时间:2024/05/15 19:29:43
main()
{
int x,y;
x=11;
y=3;
printf("%d",y=x/y);
}
在C语言中,当赋值运算符"="两侧的数据类型不同时,系统将自动进行数据类型转换,将右侧的数据类型转换为左侧的数据类型.

教程这么说是什么意思啊.我前面都用了整型了.就算没有赋值运算符也一样等于3吧..

x/y==11/3==3.666....但因为y是整型变量,所以小数点后面的值舍去,所以y=x/y 后y值是3。如果程序变为
main()
{
int x,y;
x=11;
y=4;
printf("%d",y=x/y);
}
输出的值就是2。

是啊 你这道题的结果是错误的 你只有一个%d
printf("y= %d",x/y);
应该这么写

由于 y 是整形 所以计算出来的结果 3.6666666...就转变为 3

得到的结果就是 3