C语言基本数据类型整理

    科技2025-08-23  13

    C语言基本数据类型

    前言一、整数类型int 类型其他整数类型 二、浮点数类型三、字符类型四、布尔类型五、复数和虚数类型基本数据类型取值范围总结小结:基本数据类型关键字:有符号整型:无符号整型字符类型:布尔类型:实浮点类型:复数和虚数浮点数:


    前言

    C语言的的基本数据类型有:

    整数类型浮点数类型字符类型_bool类型复数和虚数类型

    一、整数类型

    C语言的整数类型有 int、short int、long int、long long int、unsigned int、unsigned short int、unsigned long int、unsigned long long int

    int 类型

      (C Prime Plus)C语言提供了许多整数类型,为什么一种整数类型不够用?因为C语言让程序员针对不同情况来选择不同的类型。特别是,C语言中的整数类型可表示不同的取值范围和正负值。一般情况使用int类型即可,但是为满足特定任务和机器的要求,还可以选择其他类型。

      int类型是有符号整型,即int类型的值必须是整数,可以是正整数、负整数或者零。其取值范围依计算机系统而异。一般而言,储存一个int要占用一个机器字长,因此早期的16位IBM PC兼容机使用16位来储存一个int值,其取值范围是(int的取值范围)-32768~32767,目前的个人计算机一般是32位,因此用32储存一个int值。现在,个人计算机产业正逐步向着64位处理器发展,自然能储存更大的整数。ISO规定int的取值范围最小为-32768-32767.一般而言系统用一个特殊位的值来表示有符号整数的正负数。

    其他整数类型

    short int类型(或者简写为short)占用的存储空间可能比int类型少,常用于较小数值的场合节省空间。与int类似,short是有符号整型。long int或long占用的空间可能比int多,适用于较大数值的场合。与int类似,long是有符号整型。long long int或者long long(C99标准加入)占用的存储空间可能比long多,适用于更大数值的场合。该类型至少占64位。与int类似,long long是有符号整型。unsigned int或unsigned只用于非负值场合。这种类型和有符号类型表示的范围不同。例如16位unsigned int允许的范围是0 ~ 65535而不是-32768 ~ 32767.用于表示正负号的位现在用于表示另一个二进制位。所以无符号整型可以用于表示更大的值。在C90标准中添加了unsigned long int或者unsigned long和unsigned int或者unsigned short。C99标准中unsigned long long int或者unsigned long long。在任何有符号类型前边添加关键字signed,可强调使用有符号类型的意图。例如short、short int、signed short、signed short int都表示同一种类型。

    C标准对基本数据类型只规定了允许的最小大小。对于16位机,short和int的最小范围为[-32767,32767];对于32位机,long的最小取值范围是[-2147483647,2147483647].对于unsigned short和unsigned int,最小取值范围是[0,65535];对于unsigned long,最小取值范围是[0,4294967295]。long long类型是为了支持64位的需求,最小取值范围是[-9223372036854775807,9223372036854775807];unsigned long long的最小取值范围是[0,18446744073709551615]。

    二、浮点数类型

      浮点数和数学中的实数的概念差不多。在一个整数值后边加一个小数点就成了一个浮点数。

      浮点数和整数的存储方案不同。计算机把浮点数分成小数部分和指数部分来储存,并且分开储存这两部分。

    整数没有小数部分,浮点数有小数部分。浮点数可以表示的部分比整数部分大。对于一些算数运算,浮点数损失的精度更多。因为在任何区间内都存在无数多的实数,因此计算机内的浮点数不能表示区间内的所有值。浮点数通常只是实际值的近似值。例如,7.0可能被存储为6.999999。过去浮点数运算都比实际值慢。不过现在许多CPU都包含浮点数处理器,缩小了速度上的差距。

    三、字符类型

    char类型用于存储字符(如字母符号标点),但是从技术层面上看,char是整数类型,因为char类型实际上存储的是整数而不是字符。计算机使用数字编码来存储字符,即用特定的整数表示特定的字符,美国最常用的编码是ASCLL码。例如在ASCLL码中整数65代表A。因此存储字母A实际上是存储整数65。(许多IBM的大型主机使用另一种编码——EBCDIC。原理相同,不同国家的计算机系统可能使用完全不同的计算机编码。)

    标准ASCLL码的范围是0~127,只需7位二进制数就可以表示。通常char类型被定义位8位的存储单元,因此容纳标准ASCLL码绰绰有余。许多其他系统(如IMB PC和苹果Macs)还提供拓展的ASCLL码,但也在8位的表示范围内。一般而言,C语言会保证char类型足够大,以储存系统(实现C语言系统)的基本字符集。

    许多字符集都超过了127,甚至超过255。例如,日本汉字(kanji)字符集。商用的统一码(Unicode)创建了一个能表示世界范围内多种字符集的系统。国际标准化组值(ISO)和国际电工技术委员会(IEC)为字符集开发了ISO/IEC10646标准。统一码标准也与ISO/IEC10646标准兼容。

    C语言把1字节定义为char类型占用的位数,因此无论是16位还是32位系统都可以使用char类型。

    四、布尔类型

    布尔类型用于表示布尔值,即逻辑值true or false,C语言用1表示true,0表示false,所以只用一位的存储空间就足够了。

    五、复数和虚数类型

    复数虚数类型不太常用,使用的时候在C Prime Plus找一下吧

    基本数据类型取值范围

    总结

    总结来自C Prime Plus第六版

    小结:基本数据类型

    关键字:

    基本数据类型由十一个关键字组成:int、long、short、unsigned、char、float、double、signed、_bool、_complex、和 _Imaginary.

    有符号整型:

    有符号整型可以用于表示正整数和负整数。

    int——系统给定的基本整数类型,C语言规定int类型不能小于16位。short或short int——最大的short类型整数小于或等于最大的int类型整数,C语言规定short类型至少占16位。long或long int——该类型可表示的整数大于或等于最大的int类型整数,C语言规定long类型至少占32位。long long或long long int——该类型可表示的整数大于或等于最大的long类型整数,C语言规定long long类型至少占64位。 一般而言,long类型占的内存比short类型大,int类型的宽度要么和short类型相等要么和long类型相等。例如,旧DOS系统的PC提供16位的short和int以及32位的long;Windows 95系统提供16位的short以及32位的int和long。

    无符号整型

    无符号整型只能用来表示零和正整数,因此无符号整型可表示的正整数比有符号整型的大。在整型前加上关键字unsigned表明该类型是无符号整型:unsignedint、unsigned long、unsigned short。单独的unsinged相当于unsignedint。

    字符类型:

    可打印出来的符号(如A、&和+)都是字符。根据定义,char类型表示一个字符要占用1字节内存。出于历史原因,1字节通常是8位,但是如果要表示基本基本字符集,也可以是16位或者更大。

    char——字符类型的关键字。有些编译器使用有符号的char,而有些使用无符号的char。在需要时,可在char前边加上signed或unsigned来指明具体使用哪一类型。

    布尔类型:

    布尔值表示true和false。C语言用1表示true,0表示false。

    _bool——布尔类型的关键字。布尔类型是无符号int类型,所占用的空间只要能储存0或1即可。

    实浮点类型:

    实浮点类型可表示正浮点数和负浮点数。

    float——系统的基本浮点类型,可精确表示至少6位有效数字。double——储存浮点数的范围(可能)更大,能表示比float类型更多的有效数字(至少10位,通常会更多)和更大的指数。long double——储存浮点数的范围(可能)比double更大,能表示比double更多的有效数字和更大的指数。

    复数和虚数浮点数:

    虚数类型是可选的类型,复数的虚部和实部都基于实浮点类型来构成:

    float_Complexdouble_Complexlong double_Complexfloat_Imaginarydouble_Imaginarylong double_Imaginary
    Processed: 0.015, SQL: 8