二级C++精品课程2,第1张

二级C++精品课程2,第2张

在C++中,数据有不同的类型。类型定义了变量可以存储的值的范围以及可以执行的操作。变量用于在内存中存储数据,每个变量必须有特定的数据类型。C++语言的数据类型如图2-1所示。
在图2-1中,数据类型分为基本数据类型和复合数据类型。我们还可以将数据类型分为内置类型和用户定义类型。用户自定义类型在使用前必须定义,包括:结构、类、枚举和联合类型;内置类型是指C++直接提供的类型,也就是除了用户自定义类型以外的其他类型。

图2-1 C++数据类型


从语法上讲,void类型也是基本类型。但是,它不是完整的类型,只能作为更复杂类型的一部分。没有void类型的变量,要么用来指定函数(第五章介绍)没有返回值,要么作为指针(第七章介绍),表示指针指向未知类型的变量,例如:
void x;//错误,没有void变量
void f();//函数f不返回值
void * PV;//指针pv指向未知类型的变量
布尔、字符、整数、浮点类型也叫算术类型;枚举、指针、数组、引用、结构、联合和类被称为复合数据类型,它们可以由其他数据类型构造。
可以在基本数据类型char和int之前添加修饰符,以改变基本类型的含义。有四种可用的修饰符:长整型、短整型、有符号型和无符号型。此外,可以在双精度类型之前添加长修饰符。基本数据类型及其表示范围见表2-3。
表2-3基本数据类型及其表示范围
类型名称类型字节表示范围
char字符类型1-128 ~ 127
Unsigned char Unsigned字符类型1 0 ~255
Signchar有符号字符类型(与字符类型相同)1 -128 ~127
int整数类型*与机器相关
unsigned int整数类型*与机器相关
有符号int整数类型(与整数类型相同)* 无符号short int short integer 2 0 ~ 65535
有符号short int short integer(同short integer)2-32768 ~ 32777
long int long integer 4-2 147483648 ~ 2 147483647
有符号long int有符号long integer(同long integer)4-2 147483648 ~ 2 147 67


unsigned和signed只用于修饰char和int,signed修饰符可以省略。当使用无符号修饰符时,可以省略下面的类型说明符。示例:
signed int n;//和“int n;”等效的
带符号字符ch;//和“char ch”等效的
无符号整数n;//和“无符号n;”等效的
无符号char ch//和“无符号ch;”等价的
short只用来修改int,用short修改时,可以省略int,即:
short int n;//和“短n;”等效的
long只能修改int和double。当一个int用long修饰时,可以省略该int,即:
long int n;//和“长n;”等效的
int和unsigned int类型在每台机器上占用一个字的字节。在16位操作系统上,它们占用2个字节;在32位操作系统上,它们占用4个字节。
各种数据类型的精度从低到高的顺序如图2-2所示:
图2-2

如果一个双目运算符两边的操作数类型不一样,就要转换成相同的类型,也就是把较低的类型转换成较高的类型,然后才能参与运算。所谓类型的高低,直接关系到占用存储的大小空。存储类型空越大,级别越高。
图中的水平箭头表示必要的转换。比如运算中涉及两个浮点数,虽然是同一类型,但运算前还是要转换成double,结果是double。当运算符两边的操作数属于不同类型时,垂直箭头指示转换。比如一个long类型的数据和一个int类型的数据进行运算,就需要先把int类型的数据转换成long类型,然后两种类型进行运算,结果就是一个long类型。所有这些转换都是由系统自动进行的,使用时你只需要知道结果的类型。

2-2
# include
void main(void)
{
char a = ' x ';
int b = 3,f = 2;
float c = 2.5678;
双d = 5.2345
鳄龙= 32L
cout下面我们来分析一下这个程序:
(1)执行d/c运算时,C要转换成double类型,运算的中间结果是double类型;
(2)进行e * f运算时,将F转换为long,运算的中间结果为long;
(3)执行a-b运算时,将A转换为int类型(值为ASC代码值120),运算的中间结果为int类型;
(4)将(3)的中间结果与(1)的中间结果进行运算时,将(3)的中间结果转换为double类型,运算的中间结果为double类型;
(5)将(4)的中间结果与(2)的中间结果进行运算时,将(2)的中间结果转换为double,得到最终结果。
因此,程序的最终运行结果是55.038515。


位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » 二级C++精品课程2

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情