# include
void main() {
int i,j;
float a,b;
char c;
long m,n;
i=5;
j=-3;
a=25.5;
b=3.0;
m=a/b;
n=m+i/j;
printf("%d\n",n);
}
实际运行的结果是7。(不考虑vs中需要加system("pause")的情况)
至于为什么?很简单,m和n都是长整型变量,a/b的结果是8.5,给m赋值后,由于类型转换,被截断为8。
i/j的结果是-1.666666666666667,但由于i和j都是整形变量,所以i/j的结果被直接截断为-1。
所以m+i/j的结果是7,给n赋值,再用printf语句显示n的值,结果自然就是7了。