【C语言】float转化为int的问题

#include <stdio.h>
int main() {
float x;
x=10/4;
printf("%d",x);
}

输出:0

为什么是0啊?如果%d表示整型,不应该是2吗?

这个和数据在内存中的分布有关
建议你看下
https://blog.csdn.net/lolichan/article/details/84895545

另一个int型变量等于x,然后输出那个变量

你的x应该这样定义
int x;
这样输出的才是2.

int main() {
float x;
x=10/4;
printf("%d",(int)x);
}

C语言不支持隐式类型转换,所以说必须将类型强制转换一下,否则会导致输出的不是想要的结果:

//隐式类型转换实例
float s = 1.24;
int n = (float)s;