enwa 发表于 2012-9-18 15:10:53

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;
        }

lcofjp 发表于 2012-9-18 15:20:07

因为你没转换,传进函数里面的是两个字节,而格式指定输出4个字节,可想而知多了两个不确定的字节。
啥叫类型转换呢,就是你在传进去之前转成4个字节就ok了。printf("Output %ld\n",(long)i);

enwa 发表于 2012-9-18 15:24:27

lcofjp 发表于 2012-9-18 15:20 static/image/common/back.gif
因为你没转换,传进函数里面的是两个字节,而格式指定输出4个字节,可想而知多了两个不确定的字节。
啥叫类 ...

非常感谢!以为编译器会自动进行转换呢。
页: [1]
查看完整版本: C类型转换的疑问