C语言的的基本数据类型有:
整数类型浮点数类型字符类型_bool类型复数和虚数类型C语言的整数类型有 int、short int、long int、long long int、unsigned int、unsigned short int、unsigned long int、unsigned long long 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.一般而言系统用一个特殊位的值来表示有符号整数的正负数。
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