const变量存在的原因:
例:for( int i=0;i<5;++i)
这个5是个魔数,表示什么呢?不是所有看到这段代码的人都清楚。这个时候需要提供一些额外的信息,如num_of_days表示这个5。c++中可以将num_of_days声明成为一个常量,这个常量在预编译阶段就能确定,可以用来初始化一个数组。而在c语言中,const修饰的实际上只是不可变的变量,如果用它来初始化一个数组的大小,就会报错。
const int num_of_days=5;
c++中,用const修饰的常量默认为文件内的局部常量,如果让它能被其他文件引用,需要显式声明为extern。非const变量默认为extern。这一点在编程的时候需要注意。
const与指针的问题,分三类:
1)指向const对象的指针
const char *p;
char const *p;
2)const指针
char * const p;
3)指向const对象的const指针
const char *const p;
当定义了typedef 然后与const混用的时候特别令人迷惑。。
这种情况下:const char ** argv; 不理解