1.const用于修饰普通变量,表示常量,不建议修改,某种程度上不允许修改(其实也是可以修改的)
指针常量 :指针(指向的变量的值)自身是一个常量,说明不能改变自身的指向 int* const p=&a;
常量指针 :指向常量的指针,指针可以修改指向 但是不能修改指向的变量的值 const int* p;
面试必杀技:
const出现在*的左边 是常量指针
const int num = 19;
const int * p = #//指向常量的指针
常见的面试题中,经常会拿如下的例子来糊弄人:
int main() { int a = 10; int b = 20; const int* p;//const *p,可以不用初始化,表示*p是常量 int* const p1 = &b;//const p,必须初始化,否则报错,表示p是常量地址 int* pp1 const = &a;//报错,没有这种写法,不同于常函数:int fun()const; const int* const p2=&a;//const int* 和int const*是一样的,且必须在定义时初始化,因为const直接修饰指针p2 int const* const p3=&a;//p2和p3是一样效果,只需要考虑const在*的左边还是右边,不受int 的影响 }