温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

C语言中的整数都存在于哪些呢

发布时间:2021-10-14 16:22:22 来源:亿速云 阅读:132 作者:柒染 栏目:编程语言

这篇文章给大家介绍C语言中的整数都存在于哪些呢,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

  整数是编程中常用的一种数据,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语言中的整数都存在于哪些呢就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI