各种数据类型的取值范围(自查)

        在写程序的过程中我们有时候会处理一些极大地数据,这时候就会出现一些困惑各种数据类型的大小,声明的时候让自己很谨慎, 于是碰到较大的数值就直接long类型的的变量就声明了,在C函数库Limits中包含着对于所用编译器中各个数据类型的取值范围。下面是程序代码。
/*本程序中得到启示:在输出不同类型的数据时,输出格式也要相应改变
 * long类型的要添加‘l’,unsigned要添加'u'否则会发生越界*/
#include <limits.h>
#include <stdio.h>

int main()
{
	printf("The Bits Of Type Char: %d \n",CHAR_BIT);
	printf("The Max Of Char: %d \n",CHAR_MAX);
	printf("The Min Of Char: %d \n",CHAR_MIN);
	printf("The Max Of Int: %d \n",INT_MAX);
	printf("The Min Of Int: %d \n",INT_MIN);
	printf("The Max Of Long: %ld \n",LONG_MAX);
	printf("The Min Of Long: %ld \n",LONG_MIN);
	printf("The Max Of Short: %d \n",SHRT_MAX);
	printf("The Min Of Short: %d \n",SHRT_MIN);
	printf("The Max Of unsigned Char: %u \n",UCHAR_MAX);
	//此处如果是%d,会显示越界
	printf("The Max Of unsigned Int: %u \n",UINT_MAX);
	printf("The Max Of unsigned Short: %u \n",USHRT_MAX);
    //此处如果是%d,会显示越界
	printf("The Max Of unsigned Long: %lu \n",ULONG_MAX);
	return 0;
}

这是我自己的电脑windows32位机的运行结果。

通过上图可以发现int与long的数值范围是一致的,因为在32位操作系统中,int跟long都占4字节,char占1个字节,short占两个字节。数值最大取值为1000000000(<2147483647),在32位系统中时完全不会越界的。(平时都被一些极为老式的教科书上说的int占2个字节声明为unsigned最大才为65535给蒙了)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值