C语言中的整数都存在于哪些呢
这篇文章给大家介绍C语言中的整数都存在于哪些呢,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
成都创新互联公司作为成都网站建设公司,专注重庆网站建设公司、网站设计,有关成都企业网站定制方案、改版、费用等问题,行业涉及PE包装袋等多个领域,已为上千家企业服务,得到了客户的尊重与认可。
整数是编程中常用的一种数据,C语言通常使用int来定义整数(int是integer的简写),这在《大话C语言变量和数据类型》中已经进行了详细讲解。
在现代操作系统中,int一般占用4个字节(Byte)的内存,共计32位(Bit)。如果不考虑正负数,当所有的位都为1时它的值最大,为232-1=4,294,967,295≈43亿,这是一个很大的数,实际开发中很少用到,而诸如1、99、12098等较小的数使用频率反而较高。
使用4个字节保存较小的整数绰绰有余,会空闲出两三个字节来,这些字节就白白浪费掉了,不能再被其他数据使用。现在个人电脑的内存都比较大了,配置低的也有2G,浪费一些内存不会带来明显的损失;而在C语言被发明的早期,或者在单片机和嵌入式系统中,内存都是非常稀缺的资源,所有的程序都在尽力节省内存。
反过来说,43亿虽然已经很大,但要表示全球人口数量还是不够,必须要让整数占用更多的内存,才能表示更大的值,比如占用6个字节或者8个字节。
让整数占用更少的内存可以在int前边加short,让整数占用更多的内存可以在int前边加long,例如:
shortinta=10;
shortintb,c=99;
longintm=102023;
longintn,p=562131;
这样a、b、c只占用2个字节的内存,而m、n、p可能会占用8个字节的内存。
也可以将int省略,只写short和long,如下所示:
shorta=10;
shortb,c=99;
longm=102023;
longn,p=562131;
这样的写法更加简洁,实际开发中常用。
int是基本的整数类型,short和long是在int的基础上进行的扩展,short可以节省内存,long可以容纳更大的值。
short、int、long是C语言中常见的整数类型,其中int称为整型,short称为短整型,long称为长整型。
整型的长度
细心的读者可能会发现,上面我们在描述short、int、long类型的长度时,只对short使用肯定的说法,而对int、long使用了“一般”或者“可能”等不确定的说法。这种描述的言外之意是,只有short的长度是确定的,是两个字节,而int和long的长度无法确定,在不同的环境下有不同的表现。
一种数据类型占用的字节数,称为该数据类型的长度。例如,short占用2个字节的内存,那么它的长度就是2。
实际情况也确实如此,C语言并没有严格规定short、int、long的长度,只做了宽泛的限制:
short至少占用2个字节。
int建议为一个机器字长。32位环境下机器字长为4字节,64位环境下机器字长为8字节。
short的长度不能大于int,long的长度不能小于int。
总结起来,它们的长度(所占字节数)关系为:
2≤short≤int≤long
这就意味着,short并不一定真的”短“,long也并不一定真的”长“,它们有可能和int占用相同的字节数。
在16位环境下,short的长度为2个字节,int也为2个字节,long为4个字节。16位环境多用于单片机和低级嵌入式系统,在PC和服务器上已经见不到了。
对于32位的Windows、Linux和MacOS,short的长度为2个字节,int为4个字节,long也为4个字节。PC和服务器上的32位系统占有率也在慢慢下降,嵌入式系统使用32位越来越多。
在64位环境下,不同的操作系统会有不同的结果,如下所示:
操作系统 short int long
Win64(64位Windows) 2 4 4
类Unix系统(包括Unix、Linux、MacOS、BSD、Solaris等) 2 4 8
目前我们使用较多的PC系统为WinXP、Win7、Win8、Win10、MacOS、Linux,在这些系统中,short和int的长度都是固定的,分别为2和4,大家可以放心使用,只有long的长度在Win64和类Unix系统下会有所不同,使用时要注意移植性。
sizeof操作符
获取某个数据类型的长度可以使用sizeof操作符,如下所示:
#include
intmain()
{
shorta=10;
intb=100;
intshort_length=sizeofa;
intint_length=sizeof(b);
intlong_length=sizeof(long);
intchar_length=sizeof(char);
printf("short=%d,int=%d,long=%d,char=%d\n",short_length,int_length,long_length,char_length);
return0;
}
在32位环境以及Win64环境下的运行结果为:
short=2,int=4,long=4,char=1
在64位Linux和MacOS下的运行结果为:
short=2,int=4,long=8,char=1
sizeof用来获取某个数据类型或变量所占用的字节数,如果后面跟的是变量名称,那么可以省略(),如果跟的是数据类型,就必须带上()。
需要注意的是,sizeof是C语言中的操作符,不是函数,
关于C语言中的整数都存在于哪些呢就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
标题名称:C语言中的整数都存在于哪些呢
标题路径:http://hbruida.cn/article/gpsppd.html