C语言为什么要定义short,int,long这么多整数类型?

33502b5d49185cf20212ab6e227adbb8.png

点击上方蓝字关注我,了解更多咨询

36d300a72f12ddd1c1473b0c6de22253.png

整数类型有int、short int、long int三种类型,用于需要不同存储空间的整数使用。整数类型有正整数和负整数之分,在C语言中,规定整型的最高位为符号位,最高位为“0”表示正数,最高位为“1”表示负数,其它位表示数值。因此整型类型的数据能够表示的最小值为:-2n-1 —2n-1-1(n为该类型所占存储空间的二进制位数)。

C语言对int、short int、long int并没有严格规定其长度(占用存储空间的字节数),只做了宽泛的限制:short 至少占用 2 个字节;int 建议为一个机器字长。32 位环境下机器字长为 4 字节,64 位环境下机器字长为 8 字节;short 的长度不能大于 int,long 的长度不能小于 int。

由此可见,short 并不一定真的”短“,long 也并不一定真的”长“,它们有可能和 int 占用相同的字节数。

在 16 位系统下,short 的长度为 2 个字节,int 也为 2 个字节,long 为 4 个字节。在32位系统下,short 的长度为 2 个字节,int 为 4 个字节,long 也为 4 个字节。

前面讨论的都是有符号整数,可以表示正负数。若只需要处理正整数,可以在上述类型关键字前面添加unsigned关键字表示无符号整数,两个关键字用空格隔开,因为不需要符号位,因此无符号整数表示的范围为:0 —2n-1。下表列出了符号整数的类型。

0ad217430af8c297f70a16265410e254.png

整型变量可按如下方式声明:

int pageNumber;

long int size;

short age;

unsigned short readCount;

在一条语句中,可以声明多个同一类型的整型变量,每个变量之间用逗号分隔:

int pageNumber, likeNumber,readCount;

整型变量可按如下方式初始化:

int pageNumber=230;

short age = 21;

unsigned short readCount=1260;

在初始化变量或为变量赋值时,常常会用到一些数值,这些值通常称为数字常量。C语言中整型常量有三种不同的表示形式:十进制、八进制和十六进制。

八进制整型常量:在八进制数值前面加前缀数字0,其数码取值为0—7,例如:023、0457、01329等;

十六进制整型常量:前缀为“0X”或“0x”,数码取值0—9、A—F、或a—f。例如:0X2A、0XA0、0X

十进制整型常量:既无前缀也无后缀。例如:236、56、7890等。

在整型数值常量后面可以添加u或U(unsigned)、l或L(long)、u/U与l/L的组合(如:ul、lu、Lu等),表示该数值常量的类型。例:100u; 123u; 0x123L;

4a0934037a6d47195e74d372d7c6ed20.png

END

*声明:本文于网络整理,版权归原作者所有,如来源信息有误或侵犯权益,请联系我们删除或授权事宜。

379f73e8b113e74033e60e57def2c926.png

c6db1df449adc94b1bd998cdadaa3f34.gif

戳“阅读原文”我们一起进步

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/337881.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c语言中函数参数类型的探究

点击上方蓝字关注我,了解更多咨询函数中的参数个数可以是0,也可以是一个或多个参数。下面我们带着这三种不同的情况,分别在c语言中进行讨论。1、函数没有参数,表示没有参数列表。int func1(); //声明一个函数,该函数…

c语言野指针产生的原因

点击上方蓝字关注我,了解更多咨询1、指针变量未初始化,任何指针变量刚被创建时不会自动成为 NULL 指针,它的缺省值是随机的。所以,指针变量在创建的同时应当被初始化,要么将指针设置为 NULL ,要么让它指向合…

c语言中assert函数的使用注意

点击上方蓝字关注我,了解更多咨询1、使用assert检查函数开始时传入参数的合法性。2、每个assert只检验一个条件,因为在同时检验多个条件时,如果断言失败,就无法直观地判断哪个条件失败。实例int resetBufferSize(int nNewSize) {/…

es 调整gc_实际中进行GC调整

es 调整gc调优垃圾回收与任何其他性能调优活动没有什么不同。 您需要确保您了解当前的情况和所需的结果,而不是因为对应用程序的随机部分进行调整而产生了诱惑。 通常,只需执行以下过程即可: 陈述您的绩效目标 运行测试 测量 与目标比较…

c语言中assert函数是什么

点击上方蓝字关注我,了解更多咨询1、assert将通过检查表达式expresion的值来决定是否需要终止执行程序。2、如果表达式expresion的值是假的(即0),它将首先向标准错误流stderr打印错误信息。通过调用abort函数终止程序运行。否则,assert没有效…

sci检索没有馆藏号_转变馆藏

sci检索没有馆藏号您是否曾经想替换过HashSet或HashMap使用的equals和hashCode方法? 或者有一个List的一些元素类型伪装成的List相关类型的? 转换集合使这成为可能,并且本文将展示如何实现。 总览 转换集合是LibFX 0.3.0的一项功能&#xf…

c语言中exit和return的区别

点击上方蓝字关注我,了解更多咨询1、返回函数值的return是关键字,exit是一个函数。return是语言级的,它表示调用堆栈的返回;exit是系统调用级的,它表示一个过程的结束。2、return是函数的退出,exit是进程的…

java怎样返回json_java怎么返回json

详细内容本篇文章将介绍如何编写Java程序来返回Json数据,本次以三个方式进行介绍。推荐课程:Java教程,方式1:当然是手敲所有代码,来进行json数据的返回。需要 HttpHttpServletRequest request HttpServletResponse res…

c语言中realloc函数是什么

点击上方蓝字关注我,了解更多咨询1、判断当前指针是否有足够的连续空间。如果足够,扩大ptr指向的地址并返回。如果不够,如何根据size指定的大小分配空间,将原始数据复制到新分配的内存中,然后释放原始ptr指向的区域。2…

java jsp学习指南_JSP教程–最终指南

java jsp学习指南编者注: JavaServer Pages(JSP)技术使您可以轻松创建同时包含静态和动态组件的Web内容。 JSP技术提供了Java Servlet技术的所有动态功能,但提供了一种更自然的方法来创建静态内容。 JSP技术的主要功能包括用于开…

c语言中main函数是什么

点击上方蓝字关注我,了解更多咨询1、main函数是C程序的入口函数,即程序的执行从main函数开始,其他函数的调动也直接或间接地在main函数中调用。2、main函数的返回值用于解释程序的退出状态。若返回0,则表示程序正常退出。返回其他…

c语言中__cplusplus是什么

点击上方蓝字关注我,了解更多咨询1、__cplusplus和extern“C”一般都是配对使用,如果定义了__cplusplus(cpp文件默认定义了该宏),则采用C语言方式进行编译。2、是在C中特有的,__cplusplus 其实就是C。实例#ifndef __CODERSRC_H__ …

c语言中fwirte函数的使用方法示例

点击上方蓝字关注我,了解更多咨询1、fwrite函数用于将缓冲区数据写入文件,并返回成功写入文件的元素数。如果出现错误或到达文件末尾,可能小于nmemb。2、fwrite函数不区分文件的尾部和错误,因此调用者必须使用feof和ferror来判断发…

联通光纤限制连接数_从数百万个光纤(而不是数千个线程)中查询数据库

联通光纤限制连接数jOOQ是在Java中执行SQL的好方法,而Quasar光纤带来了大大提高的并发性 我们很高兴在平行世界的 Fabio Tudone的jOOQ博客上宣布另一个非常有趣的来宾帖子。 Parallel Universe开发了一个开放源代码堆栈,使开发人员可以轻松地在JVM上对…

java 工程新建ivy文件_Hadoop学习之路(八)在eclispe上搭建Hadoop开发环境

一、添加插件将hadoop-eclipse-plugin-2.7.5.jar放入eclipse的plugins文件夹中二、在Windows上安装Hadoop2.7.5版本最好与Linux集群中的hadoop版本保持一致1、将hadoop-2.7.5-centos-6.7.tar.gz解压到Windows上的C盘software目录中2、配置hadoop的环境变量HADOOP_HOMEC:\softwa…

c语言中fclose函数的使用你会吗

点击上方蓝字关注我&#xff0c;了解更多咨询1、C语言fclose函数用于关闭使用fopen成功打开的文件。2、fopen函数和fclose函数总是成对出现。如果文件成功打开fopen函数&#xff0c;请使用fclose函数关闭文件。实例#include <stdio.h> #include <stdlib.h>int main…

Java反序列化json内存溢出_fastJson与一起堆内存溢出'血案'

现象QA同学反映登录不上服务器排查问题1–日志级别查看log,发现玩家登录的时候抛出了一个java.lang.OutOfMemoryError大概代码是向Redis序列化一个PlayerMirror镜像数据,但是在JSON.toJSONString的时候出现了错误.比较清晰&#xff0c;即序列化的时候expandCapacity,内存不足。…

c语言中预处理器是什么

点击上方蓝字关注我&#xff0c;了解更多咨询1、C语言有预处理器&#xff0c;Java中没有这个概念&#xff0c;其实只是文本替换工具。2、C的预处理器&#xff0c;即CPP&#xff0c;将在实际编译器中完成处理&#xff0c;所有预处理命令将从#开始。实例#include <stdio.h>…

c语言strcat_s函数如何使用

点击上方蓝字关注我&#xff0c;了解更多咨询1、strcat_s函数将strSource指向的字符串添加到其它字符串结尾。因此需要确保strDestination有足够的内存空间来容纳strSource和strDestination两个字符串&#xff0c;否则会导致溢出错误。2、strDestination末端的\0将被覆盖。strS…

c语言strcat_s函数的原理

点击上方蓝字关注我&#xff0c;了解更多咨询1、dst 内存空间大小目标字符串长度原始字符串场地‘\0’。2、使用sizeof函数获取内存空间大小&#xff0c;strlen函数获取字符串长度。即获取内存空间大小和查字符串长度。实例#include "stdafx.h" #include<stdlib.h…