◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。
数据在内存中的表现形式其实很简单,在程序运行过程中数据要么是可以变的,要么就是不会变的。我们把永远保持不变的数据称为常量,把可以发生变化的数据称为变量。
本节内容先介绍常量部分。
常量很简单,只有两种:值常量和符号常量。
什么是值常量?
值常量就是一些数值或字符或字符串。例如123,123.456,‘A’,”hello“
我们能看出常量是以自身的存在形式体现其值和类型的。例如,123是整型常量,123.456是实型常量,‘A’是字符型常量,”hello“是字符串常量。
另外我们要注意字符型常量和符号常量是不同的。字符型常量是值常量中的一种类型。值常量包括:整型常量(八进制,十进制,十六进制)、实型常量、字符型常量和字符串型常量。这些在上面都有举例和说明。
那什么是符号常量呢?
符号常量就是用符号(标识符)命名的常量。关于标识符,可参见这里。在C和C++中,符号常量都是通过#define 预处理命令和const语句来定义的。定义形式为:
在C中 #define 标识符 值常量
在C++中 const 数据类型 标识符=值常量;
(*注意结尾分号)
例如:
#define PI 3.1415926
const float PI=3.1415926;
注意:符号常量一般用大写字母表示,变量一般用小写字母表示,以示区别。
关于C中#define预处理命令的详细使用可以参见《编译预处理——无参数宏定义》
一个疑问
书上说,常量并不占据内存,在程序运行时它作为操作对象直接出现在运算器的寄存器中。
而又有另一种说法,数据在内存中有两中表现形式:常量和变量。
我的疑问就是常量到底在不在内存中?(欢迎赐教和探讨)