这里的指针和后面讲的多维数组没有任何关系,之所以放在一篇文章中是因为,两个的内容都很少。
const int *p1; 表示指针p1指向的内容是不可改变的
int *const p2; 表示指针地址是不可改变的
const int *const p3; 表示指针的地址和内容都不可改变
有关const定义的量里,不可改变的是顶层const,可改变的是底层const。
const变量作为函数形参:
通常,函数 void func(const int &i);对于不需要改变的值,我们将它定义为const形式,以保证函数不会改变这个变量。
在函数重载中,void func(const int i);和void func(int i);是不可以重载的,虽然两个函数的参数类型不同,但是当我们用实参初始化形参时,编译器会自动忽略顶层const。也就是说,当形参有顶层const的时候,传给它常量对象和非常量对象都是可以的。而你调用func(int i)时也能传入非常量对象,这时编译器