整型变量的类型和表示形式:
1.基本整型(int):
有符号基本整型:用[signed] int 表示.内存占2字节
无符号基本整型:用unsigned int 表示.内存占2字节
2.短整型(short)
有符号短整型:用[signed] short int 或[signed] short 表示.内存占2字节
无符号短整型:用unsigned short int 或 unsigned short 表示.内存占2字节
3.长整型(long):
有符号长整型:用[signed] long int 或 [signed] long 表示.内存占4字节
无符号长整型:用unsigned long int 或 unsigned long 表示.内存占4字节
有符号类型通常省略[signed],比如说[signed] int 可以写成 int.
下面列出它们的十进制取值范围:
int: -32 768~32 767
unsigned int: 0~65 535
short: -32768~32 767
unsigned short: 0~65 535
long: -2 147 483 648~2 147 483 647
unsigned long: 0~4 294 967 295
注意:无符号整型常量要在后面加u或U.如:45000U .
长整型常量要在后面加l或L.如:789000L.
无符号长整型常量要在后面加ul或UL.如:34560000UL.
下面提出你的错误:int unit_price = 350L;
你要么改为int unit_price=350.要么改为 long unit_price=350L.
补充:你可能问int和short这两种类型的区别,这个问题我至今也不知道.我学C一年了,欢迎你和我一起探讨其他关于数据结构的问题,我会尽量帮你解答.
int unit_price = 350L这里己错了.
长整数350L和基本整常数350 在数值上并无区别。但对350L,因为是长整型量,C编译系统将为它分配4个字节存储空间。而对350,因为是基本整型,只分配2 个字节的存储空间。因此在运算和输出格式上要予以注意,避免出错。
没错的啊,在我的机器上运行是17.5
虽说这条int unit_price = 350L;有点问题,但350L赋值给unit_price会自动转化过来的。
我用的是VS.NET 2005。
看来应该是系统环境有关吧,你去掉L看有没问题看看。
在我机子上也没问题
我的电脑用INT也行啊,怪!