高手看一看
我是一个C语言初学者有以下几个问题不理解希望帮忙解决
1. 在C语言中 基本整型数据和短整型数据在内存中都是占用2个字节数值范围也一样是-32768~32767 也就是说基本型数据和短整型数据是一样?还是不一样?区别在哪?
2. 还有一个,一个数465356书上是说虽然面值是在长整型范围内,但是数值后面未加后缀L因此不能代表一个长整型数,但是它已超过了基本整型和短整型数的数值范围,那465356到底是一个什么类型的整数?
希望知道的大侠指点指点,先谢了
我是一个C语言初学者有以下几个问题不理解希望帮忙解决
1. 在C语言中 基本整型数据和短整型数据在内存中都是占用2个字节数值范围也一样是-32768~32767 也就是说基本型数据和短整型数据是一样?还是不一样?区别在哪?
2. 还有一个,一个数465356书上是说虽然面值是在长整型范围内,但是数值后面未加后缀L因此不能代表一个长整型数,但是它已超过了基本整型和短整型数的数值范围,那465356到底是一个什么类型的整数?
希望知道的大侠指点指点,先谢了
2004-11-12 17:54
2004-11-12 19:02
2004-11-13 09:13
你说错了,你说的整型数据,就是短整型数据,这是C默认的,
int a;等于short int a;
还有你说的加L的问题,也是错的,不是说465356不是长整型,而是说用465356运算的表达式的值,或者说变量!!!

2004-11-13 12:58
我还是不能理解
但谢了
2004-11-15 09:23
我在细说一下:
所说的shot int a;和int a;是一个意思,是因为:当你在程序中输入int a;后,系统会自动的把你写的语句改为shot int a;
(并不是这样,但可以这样理解。)这样,你后面的操作也是一样的了!!!
而所谓的长整型的问题,你看:
long a,b;
a=32767+100;
b=32767+100l;
printf("a=%d,b=%d",a,b);
就应该明白一点了!

2004-11-15 09:46
常量也是有类型的。
至于类型在内存中占的字节数,我同意2楼所说,具体类型按具体编译器决定。

2004-11-15 11:34
printf("%d\t%d\t%d\t%d\t%d",sizeof(3),sizeof(3l),sizeof(3444443),sizeof(344443l),sizeof(4.3l));

2004-11-17 14:06