常量
常量分为数值型常量(即常数)和字符型常量。
例如:12,-5,0为整形常量,6.2,-2.3为实型常量;
包含在两个单撇号之间的字符为字符常量,如’a’,’x’。
注: ①字符常量只包括一个字符,如’AB’是不合法的;
②字符常量区分大小写字母,如’A’和‘a’是两个不同的字符常量;
③撇号(’)是定界符,而不属于字符常量的一部分;
- 1
- 2
- 3
例如:
cout<<’a’;
- 1
输出的是一个字母”a”,而不是三个字符“’a’“。
符号变量
定义:用一个符号名代表一个常量。
例如:
#include <iostream>
using namespace std;
#define PRICE 30 //这不是语句,末尾不用加分号
int main()
{
int num total; //num代表购货数量,total代表总贷款
num=10;
total=num*PRICE; //PRICE 是符号常量,代表(30)单价
cout<<”total=”<<total<<endl;
return 0;
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
运行结果为:total=300
在该例中用预处理指令#define指定PRICE在本程序中代表常量30。在进行编译预处理时,所有的PRICE都被置换为30,在正式进行编译时已经没有PRICE这个标识符了。
注:符号常量虽然有名字,但它不是变量。
- 1
使用符号常量的好处:
① 含义清楚。在一个规范的程序中不提倡使用很多直接常量,如sum=153023.5*43。应尽量使用“见名知意“的变量名和符号常量。
② 在需要改变一个常量时能做到“一改全改“。
常变量
定义:在定义变量时,如果加上关键字const,则变量的值在运行期间不能改变,这种变量称为常变量,又称只读变量。
在定义常变量时必须同时对它初始化(即指定其值),此后它的值不能再改变。常变量不能出现在赋值号的左边。
例如:
const int a;
a=3; //常变量不能被赋值
- 1
- 2
这种写法是错误的。
正确的写法为:
const int a=3;
- 1
也可以用表达式对常变量进行初始化:
const int b=3+6; //b的值被指定为9
- 1
符号常量和常变量的区分:
#define指令定义的是符号常量,符号常量只是用一个符号代替一个字符串,在预编译时把所有符号常量替换为所指定的字符串,它没有类型,在内存中并不存在以符号常量命名的存储单元。
const定义的常变量,常变量具有变量的特征,它具有类型,在内存中存在着以它命名的存储单元,可以用sizeof运算符测出其长度。
与一般变量唯一的不同是指定变量的值不能改变。