C++ 常量、符号变量、常变量

时间:2024-10-07 14:19:10

常量

常量分为数值型常量(即常数)和字符型常量。
例如: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运算符测出其长度。
与一般变量唯一的不同是指定变量的值不能改变。