变量和常量是用来在程序中表示数据的。常量是指取值在程序的执行过程中始终保持不变的量,又分为文字常量(Literal constant)和常变量(也称“符号常量”)。
本节将分三小节来介绍。
变 量
◆ 变量:在程序中是指可以改变值的量。
◆ 变量名:用于标识变量的标识符。而且变量必须用标识符进行标识。
◆ 变量的类型:变量有类型之分,如整形变量、字符变量等。
◆ 变量的说明:任何变量都必须先说明后使用。
目的:一是便于编译程序为变量分配空间,二是便于编译时进行语法检查。
格式:在C++中,变量说明的一般格式为:
[存储类型]<数据类型> <变量名1>[,<变量名2>,…,<变量名n>];
举例,下面是变量说明的几个例子:
int i, j, k; //说明3个整型变量i,j,k
float x,y,z; //说明3个实型变量x,y,z
char c1, c2; //说明2个字符型变量c1,c2
double dx; //说明1个双精度型变量dx
◆ 变量的使用:变量使用的第一步,是给变量赋初始值,称为“初始化”。有两种方法:
- 变量说明时直接赋初值:
int a=3, b=4, c=5;
float x=3.0; - 用赋值语句赋初值:
float x, e;
x=3.5;
e=2.71828;
文字常量
文字常量指程序中直接给出的量。文字常量存储在程序区,而不是数据区;对它的访问不是通过数据地址进行的。
根据取值和表示方法的不同,可分为整型常量、实型常量、字符型常量和字符串常量。
◆ 整型常量:即整数,可以有多种表示方法。
- 十进制表示法:是平时的习惯写法,例如:15 -24;
- 八进制表示法:以0打头,由数字0~7组成。例如:
012 //八进制数12,即十进制数10
-6555 //八进制数-655,即十进制数-429 - 十六进制表示法:以0X(大小写均可)打头,由数字0~9和字母A~F(大小写均可)组成,用来表示一个十六进制数。例如:
0x32A //十六进制数32A,即十进制数810
-0x2fe0 //十六进制数-2fe0,即十进制数-12256 - 其他表示法:还可以表示以 L或l结尾的长整数和以U或u结尾的无符号整数。以UL或LU(大小写均可)结尾则可表示无符号长整型常数。例如:
-84L //十进制长整数-84
026U //八进制表示的无符号数26
0X32LU //十六进制表示的无符号长整数32
◆ 实型常量:包含小数点和10的幂的数,有两种表示方法:
- 一般形式:与平时书写形式相同,由数字0 ~9和小数点组成。例如:
0.23、 -125.76、 0.0、 .46、 -35. - 指数形式:即科学表示法,表示为尾数乘以10的次方形式,由尾数、E或e和阶数组成。要求在E或e前面的尾数部分必须有数字,后面的指数部分必须为整数。
判断下列实型常量表示是否合法:(答案:红色的不合法)
123E12 、 E4 、 1.43E3.5 、 -.34e-2 ;
◆ 字符型常量:用单引号引起来的单个字符。
- 保存形式:在内存中保存的是字符的ASCII码值。
- 直接表示形式:对于可显示字符,通常用单引号直接引起来表示。例如:
'a' //字符a '4' //字符4 '@' //字符@ ' ' //空格字符 - 转义序列表示法:对于不可显示的或无法从键盘输入的字符,如回车符、换行符、制表符、响铃、退格等;另外,还有几个具有特殊含义的字符,如反斜杠、单引号和双引号等,C++提供了一种称为“转义序列”的表示方法。例如:
'/a' //响铃 '/n' //换行符 '//' //字符/
下表给出C++中预定义的转义序列字符及其含义。
字符表示
|
ASCII码值
|
名 称
|
功 能 或 用 途
|
/a | 0x07 |
响铃
|
用于输出
|
/b | 0x08 |
退格(Backspace键)
|
退回一个字符
|
/f | 0x0c |
换页
| 用于输出 |
/n | 0x0a |
换行符
| 用于输出 |
/r | 0x0d |
回车符
| 用于输出 |
/t | 0x09 |
水平制表符(Tab键)
| 用于输出 |
/v | 0x0b |
纵向制表符
| 用于制表 |
/0 | 0x00 |
空字符
| 用于字符串结束标志等 |
// | 0x5c |
反斜杠字符
| 用于需要反斜杠字符的地方 |
/′ | 0x27 |
单引号字符
| 用于需要单引号的地方 |
/″ | 0x22 |
双引号字符
| 用于需要双引号的地方 |
/nnn | 八进制表示 | 用八进制ASCII码表示字符 | |
/xnn | 十六进制表示 | 用十六进制ASCII码表示字符 |
说明:
- 上表中最后两行是所有字符的通用表示方法,即用反斜杠加ASCII码表示。
- 对于可显示字符,有三种表示方法。以字母a为例: ′a′、′/141′和′/x61′
- 显然,对于可见字符,第一种是最简单直观的表示方法。
◆ 字符串常量:由一对双引号″″引起来的若干个字符组成。例如:″I am a Chinese.″、 ″123″、 ″a″、 ″ ″
字符串常量与字符型常量的区别如下:
- 字符串常量″a″占两个字节,存放'a'和'/0',如图左半部分,值为0x6100;
- 字符型常量'a' 占一个字节,存放'a',如图右半部分,值为0x61。
常变量
用常量说明符const给文字常量命名所得的标识符就称为“标识符常量”。因为标识符常量的说明和引用形式很像变量,所以也称“常变量”。例如:
const float PI=3.14159; //定义了常变量PI
const int Number_of_Student=100; //定义了常变量Number_of_Student
在使用常变量时应注意以下几点:
- 常变量必须也只能在说明时进行初始化。
- 常变量初始化之后,不允许再被赋值。
- 常变量必须先说明后使用。