(9)'c++:COMPLETE REFERENCE' 第一部分 第二章(表达式) 第一节

来源:互联网 发布:土耳其大清洗知乎 编辑:程序博客网 时间:2024/05/16 15:21

      本章将为读者讲解c语言和c++最基本的要素:表达式。你将会看到,相比其它的编程语言来说,表达式在c++中更强大更重要。表达式由更小的元素构成,即数据和操作符。数据可以由变量或者常量来代替。和其它大部分程序语言一样,c++支持多种不同的数据类型,同时还提供了自己的操作符集合。

五种基本数据类型

     c语言子集支持五种最基本的数据类型:character字符、integer整型、floating-point浮点数、double floating-point双精度浮点数、和空类型(分别对应char、int、float、double和void)。c语言中其余所有的数据类型都是在这五种基本数据类型的基础上构造的。这些数据类型的位数大小和数值范围对于不同的处理器和编译器来说是不同的。然而,在任何情况下,字符类型也就是char类型都是1个byte(1字节)。而整型的长度往往与执行环境中的一个word(单字)长度是一致的。 在大部分16位环境下,例DOS和Windows 3.1操作系统中,一个整型的长度是16位。而在32位环境中,例如Windows 2000,一个整型的长度就是32位。但是当你需要编写可以广泛移植的程序时,你不能事先假定整型的长度,因为c++仅仅规定了整型数据类型的最小数值范围,但是并没有规定其位数大小。

      注意:目前在五种基本数据类型的基础上又新增加了两个数据类型,bool布尔型和wchar_t类型。这些将在本书的第二部分讨论。

      浮点数值的具体的格式取决于实现。整型的位数取决于主机环境的字大小。字符类型主要用来保存ASCII字符集合,而超出这个集合的数值将会在不同的编译器下有不同的处理方式。浮点数和双精度浮点数的数值范围将和具体的表示方法有关。无论采用哪一种方法,浮点数的数值范围都是很大的。标准c规定了浮点数的最小范围是1e-37到1e+37。表2-1中列出了每一种浮点数的精度。

      注意:标准c++并没有指定基本数据类型的最小尺寸,而是简单的指出他们必须符合特定环境的需要。比如,标准c++指出int整型的位数必须“和运行环境的硬件体系所支持的自然大小相符”,在任何情况下,这个位数都应该等于或者大于标准c中所指定的最小位数。每一个c++编译器都在头文件<climits>中定义了基本数据类型的位数大小和范围。

Table 2-1.    ANS/ISO c语言标准中定义的所有数据类型
Type                           Typical Size in Bits                    Minimal Range
char                                     8                                           -127 to 127
unsigned char                   8                                           0 to 255
signed char                       8                                           -127 to 127
int                                        16 or 32                               -32767 to 32767
unsigned int                     16 or 32                               0 to 65535
signed int                          16 or 32                              same as int
short int                             16                                         -32767 to 32767
unsigned short int           16                                        0 to 65535
signed short int                16                                       same as short int
long int                               32                                       -2147483647 to 2147483647
signed long int                 32                                        same as long int
unsigned long int            32                                        0 to 4294967295
float                                    32                                        Six digits of precision
double                               64                                        Ten digits of precision
long double                      80                                        Ten digits of precision

      void数据类型用来显式声明一个无返回值的函数或者定义一个通用指针,这些将在后续的章节中讨论。 

原创粉丝点击