常量与只读变量

时间:2022-09-09 14:45:20
    常量,例如5, "abc",等,肯定是只读的,因为常量是被编译器放在内存中的只读区域,当然也就不能够去修改它。而“只读变量”则是在内存中开辟一个地方来存放它的值,只不过这个值由编译器限定不允许被修改。C语言关键字const就是用来限定一个变量不允许被改变的修饰符(Qualifier)。        

   为什么下面的例子在使用一个const变量来初始化数组,ANSI C的编译器会报告一个错误呢?
 const int n = 5;
 int a[n];

   上述代码中变量n被修饰为只读变量,可惜再怎么修饰也不是常量。而ANSI C规定数组定义时长度必须是“常量”,“只读变量”也是不可以的,“常量”不等于“不可变的变量”。但是在C++中,局部数组是可以使用变量作为其长度的。

   常量,用 enum类型和#define宏来定义.只读变量用const来定义;
   而所有宏定义、枚举常数、只读变量全用大写字母命名,用下划线分割单词。例如:
const int MAX_LENGTH = 100; //这不是常量,而是一个只读变量
#define FILE_PATH “/usr/tmp”.