在C和C++中都有const关键字,如果用来装饰一个变量则改变量设为只读类型,且必须在声明时进行初始化,否则不能后续赋值了。
在C中常量的声明方式更为传统的方式是使用#define定义,但是在C++中这种方式已经不再被提倡了。那么是不是const定义的所谓常量和#define定义的常量在使用上一样呢?
实际上C和C++关于const关键字的处理并不相同,看下面几个例子。
一、C++中const关键字
在C++中const关键字修饰的int型变量可以当做常量来使用,这至少在使用上看不出太大区别。看下面实验。
实验一:C++中的const
如下代码:
// cpp_arr_right.cpp
#include <iostream>
using namespace std;
int main(void)
{
const int Size = 4;
int int_arr_1[Size] = {1,2,3,4};
cout << "sizeof(int_arr_1) = " << sizeof(int_arr_1) << endl;
for(int i = 0; i < Size; i++) {
cout << "int_arr_1(" << i << "): " << int_arr_1[i] << endl;
}
int int_arr_2[Size];
cout << "sizeof(int_arr_2) = " << sizeof(int_arr_2) << endl;
int_arr_2[0] = 11;
int_arr_2[1] = 12;
int_arr_2[2] = 13;
int_arr_2[3] = 14;
for(int i = 0; i < Size; i++) {
cout << "int_arr_2(" << i << "): " << int_arr_2[i] << endl;
}
char char_arr[Size] = "qwe";
cout << "sizeof(char_arr) =