C类型转换的疑问
在使用turbo C 2.0编译以下程序时,输出值为153550948,而不是想像的100,那是为什么呢,int 类型转换成long int,应该输出正确才对哪,请问那位大神能明示?#include <stdio.h>
int main(void)
{
int i=100;
print("Output %ld\n",i);
return 0;
} 因为你没转换,传进函数里面的是两个字节,而格式指定输出4个字节,可想而知多了两个不确定的字节。
啥叫类型转换呢,就是你在传进去之前转成4个字节就ok了。printf("Output %ld\n",(long)i); lcofjp 发表于 2012-9-18 15:20 static/image/common/back.gif
因为你没转换,传进函数里面的是两个字节,而格式指定输出4个字节,可想而知多了两个不确定的字节。
啥叫类 ...
非常感谢!以为编译器会自动进行转换呢。
页:
[1]