当前位置: 代码迷 >> C语言 >> 请教一个关于强制转换的问题
  详细解决方案

请教一个关于强制转换的问题

热度:105   发布时间:2007-08-17 18:41:56.0
请教一个关于强制转换的问题
#include<stdio.h>
main()
{
int a=200,b=3000;
long c;
c=(long)a*b;
printf("%ld",c);
getch();
}



#include<stdio.h>
main()
{
int a=200,b=3000;
long c;
c=a*b;
printf("%ld",c);
getch();
}

请问为什么后者会数据益出?
偶是出学者
搜索更多相关的解决方案: long  int  main  getch  include  

----------------解决方案--------------------------------------------------------
没。。人么
----------------解决方案--------------------------------------------------------
不太清楚
可能a b 都是int a*b 也是int 就已经溢出了
再赋值给C的话就是溢出的值
----------------解决方案--------------------------------------------------------
就是```第2个里面ab应该回自己转换为long吧```还回益出```
不明白啊````
----------------解决方案--------------------------------------------------------
以下是引用死了都要C在2007-8-17 18:54:18的发言:
就是```第2个里面ab应该回自己转换为long吧```还回益出```
不明白啊````

偶也是这样想滴捏
不知道咋回事
编一下好了


----------------解决方案--------------------------------------------------------
等待结果ING```
----------------解决方案--------------------------------------------------------
书上也没说为什么
百思不得其解。。
----------------解决方案--------------------------------------------------------
编译器问题

我的dev CPP编译结果没问题
----------------解决方案--------------------------------------------------------
我用的是TC
----------------解决方案--------------------------------------------------------
应该是a,b是整形的原因吧,
----------------解决方案--------------------------------------------------------
  相关解决方案