【C/C++】符号常量 常变量

1.常量

在程序运行过程中,其值不能被改变的量叫做常量。

常用的常量有如下几类:

整型常量

实型常量

字符常量

       普通字符

       转义字符 如:\\表示一个反斜线;\n表示换行,将当前位置移到下一行的开头;\r表示回车,将当前位置移到本行的开头。

字符串常量

符号常量

符号常量不占内存,只是一个临时符号,预编译结束后这个符号就不存在了。用标识符代表一个常量,使用之前必须定义。例如宏定义和枚举元素。

宏定义用#define指令,指定用符号名称代表一个常量。

例如:#define NUM 100 //NUM为符号常量,100为整型常量

枚举提供了一种替代的方法,它不但定义了整数常量,而且还把它们组成一个集合。

例如:enum Weekday{SUN, MON, TUES, WED, THU, FRI, SAT}; //SUN,MON等均为符号常量。第一个枚举成员的默认值为整型的0,后续枚举成员的值在前一个成员上加1

               

2.常变量

常变量具有变量的基本属性:有类型,占存储单元,只是不允许改变其值。常变量在定义时必须显式初始化。如:const int a=3;

 

int &r=5; //编译错误

这条语句出现编译错误,原因是文字常量不可寻址,因而无法为文字常量建立引用。

下面这条语句又是合法的:

const int &r=5;   //引用一个不可寻址的常量,要用const引用。

原因是编译器将一个文字常量转化成常变量的过程。在数据区开辟一个值为5的无名整型常变量,然后将引用r与这个整型常变量进行绑定。const引用不可寻址的常量,编译期会生成一个临时量。

 

 

3.符号常量和常变量比较

定义符号常量:#define PI 3.1415926               //注意后面没有分号

定义常变量  :const float PI=3.1415926;

符号常量 pi 和常变量 PI 都代表3.1415926,在程序中都能使用,只是二者的性质有所差别,定义符号常量使用#define 指令,是预编译指令,只是使用一个符号常量代表一个字符串,在预编译是仅仅进行字符替换,在预编译之后符号常量不存在了(全部换成了3.1415926),对符号常量的名字是不分配内存的。常变量要占据内存空间,有变量值,只是这个值不改变。

符号常量和常变量都能用来定义数组维数,数组大小必须能在编译期确定。这意味着非const的变量不能被用来指定数组的维数。

使用的角度来看,常变量具有符号化常量的优点,而且使用更加方便。

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值