请教一个关于强制转换的问题
#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();
}
请问为什么后者会数据益出?
偶是出学者
----------------解决方案--------------------------------------------------------
没。。人么
----------------解决方案--------------------------------------------------------
不太清楚
可能a b 都是int a*b 也是int 就已经溢出了
再赋值给C的话就是溢出的值
----------------解决方案--------------------------------------------------------
就是```第2个里面ab应该回自己转换为long吧```还回益出```
不明白啊````
----------------解决方案--------------------------------------------------------
以下是引用死了都要C在2007-8-17 18:54:18的发言:
就是```第2个里面ab应该回自己转换为long吧```还回益出```
不明白啊````
就是```第2个里面ab应该回自己转换为long吧```还回益出```
不明白啊````
偶也是这样想滴捏
不知道咋回事
编一下好了
----------------解决方案--------------------------------------------------------
等待结果ING```
----------------解决方案--------------------------------------------------------
书上也没说为什么
百思不得其解。。
----------------解决方案--------------------------------------------------------
编译器问题
我的dev CPP编译结果没问题
----------------解决方案--------------------------------------------------------
我用的是TC
----------------解决方案--------------------------------------------------------
应该是a,b是整形的原因吧,
----------------解决方案--------------------------------------------------------