C++语言编程————C++数据类型
1.C++的数据类型
计算机处理的对象是数据,而数据是以某种特定的形式存在的(例如整数、浮点数、字符等形式)。
不同的数据之间往往还存在某些联系(例如由若干个整数组成一个整数数组)。数据结构指的是数据 的组织形式。例如,数组就是一种数据结构。不同 的计算机语言所允许使用的数据结构是不同的。处 理同一类问题,如果数据结构不同,算法也会不同。
例如,对10个整数排序和对包含10个元素的整型数 组排序的算法是不同的。
C++可以使用的数据类型如下:
C++的数据包括常量与变量,常量与变量都具有类型。由以上这些数据类型还可以构成更复杂的数据 结构。例如利用指针和结构体类型可以构成表、树、栈等复杂的数据结构。
C++并没有统一规定各类数据的精度、数值范围和在内存中所占的字节数,各C++编译系统根据自己的情况作出安排。
2.常量
2.1 什么是常量
常量的值是不能改变的,一般从其字面形式即可判别是否为常量。常量包括两大类,即数值型常量 (即常数)和字符型常量。如12,0,-3为整型常量, 4.6,-1.23为实型常量,包含在两个单撇号之间的字符为字符常量,如′a′,′x′。这种从字面形式即可识别的常量称为“字面常量”或“直接常量”。
2.2 数值常量
数值常量就是通常所说的常数。在C++中,数值常量是区分类型的,从字面形式即可识别其类型。
1. 整型常量(整数)的类型
整型数据可分为int,short int,long int以及unsigned int,unsigned short,unsigned long等类别。整型常量也分为以上类别。为什么将数值常量区分为不同的类别呢?因为在进行赋值或函数的参数虚实结合时要求数据类型匹配
2. 浮点数的表示方法
一个浮点数可以用两种不同的方式表示:
(1) 十进制小数形式。
如21.456,-7.98等。它一般由 整数部分和小数部分组成,可以省略其中之一(如 78.或.06),但不能二者皆省略。C++编译系统把用这种形式表示的浮点数一律按双精度常量处理,在内存中占8个字节。如果在实数的数字之后加字母F或f,表示此数为单精度浮点数,如1234F, 43f,占4个字节。如果加字母L或l,表示此数为长双精度数(long double),在GCC中占12个字节,在 Visual C++ 6.0中占8个字节。
(2) 指数形式(即浮点形式)
一个浮点数可以写成指数形式,如3.14159可以表示 为0.314159×101,3.14159×100,31.4159×10-1, 314.159×10-2等形式。在程序中应表示为: 0.314159e1,3.14159e0,31.4159e-1 ,314.159e-2,用字 母e表示其后的数是以10为底的幂,如e12表示1012。 其一般形式为数符数字部分 指数部分上面各数据中的0.314159,3.14159, 31.4159, 314.159 等就是其中的数字部分。可以看到:由于指数部分的存在,使得同一个浮点数可以用不同的指数形式来表示,数字部分中小数点的位置是浮动的。
2.3 字符常量
1. 普通的字符常量
用单撇号括起来的一个字符就是字符型常量。如 ′a′,′#′,′%′,′D′都是合法的字符常量,在内存中占一 个字节。注意: ①字符常量只能包括一个字符, 如′AB′ 是不合法的。②字符常量区分大小写字母, 如′A′和′a′是两个不同的字符常量。③撇号(′)是定界 符,而不属于字符常量的一部分。如cout<<′a′;输 出的是一个字母“a”,而不是3个字符“′a′ ”。
2. 转义字符常量
除了以上形式的字符常量外,C++还允许用一种特 殊形式的字符常量,就是以 “\”开头的字符序列。 例如,′\n′代表一个“换行”符。“cout<<′\n′; ” 将 输出一个换行。
3. 字符数据在内存中的存储形式及其使用方法
将一个字符常量存放到内存单元时,实际上并不是 把该字符本身放到内存单元中去,而是将该字符相 应的ASCII代码放到存储单元中。如果字符变量c1 的值为′a′,c2的值为′b′,则在变量中存放的是′a′的 ASCII码97,′b′ 的ASCII码98,实际上在内存中是以二进制形式存放的,
4. 字符串常量
用双撇号括起来的部分就是字符串常量,如 ″abc″,″Hello!″,″a+b″,″Li ping″都是字符串 常量。字符串常量″abc″在内存中占4个字节(而不是3个字节),编译系统会在字符串最后自动加一个′\0′作为字符 串结束标志。但′\0′并不是字符串的一部分,它只作为字符串的结束标志。
2.4 符号常量
为了编程和阅读的方便,在C++程序设计中,常用 一个符号名代表一个常量,称为符号常量,即以标 识符形式出现的常量。
例2.3 符号常量的使用。 #define PRICE 30 int main ( ) { int num,total; num=10; total=num * PRICE; cout<<″total=″<< total<<endl; return 0; }
3 变量
3.1 什么是变量
其实在前面的例子中已经多次用到了变量。在程序运行期间其值可以改变的量称为变量。一个变量应该有一个名字,并在内存中占据一定的存储单元,在该存储单元中存放变量的值。请注意区分变量名和变量值这两个不同的概念,
3.2 变量名规则
先介绍标识符的概念。和其他高级语言一样,用来标识变量、符号常量、函数、数组、类型等实体名字的有效字符序列称为标识符(identifier)。简单地说,标识符就是一个名字。变量名是标识符的一种,变量的名字必须遵循标识符的命名规则。 C++规定标识符只能由字母、数字和下划线3种字符组成,且第一个字符必须为字母或下划线。下面列出的是合法的标识符,也是合法的变量名: sum, average, total, day, month, Student_name, tan, BASIC, li_ling
3.3 定义变量
在C++语言中,要求对所有用到的变量作强制定 义,也就是必须“先定义,后使用”。定义变量的一般形式是
变量类型 变量名表列;
变量名表列指的是一个或多个变量名的序列。
如 float a,b,c,d,e; 定义a,b,c,d,e为单精度型变量,注意各变量间以逗号分隔,最后是分号。 可以在定义变量时指定它的初值。如 float a=83.5,b,c=64.5,d=81.2,e;