对于这个修饰符我首先说点题外话
int a;这个a表示是一个int类型变量,因为a是被int修饰的。
int *a;我们都知道a是一个int类型的指针,关键是你怎么理解的。
我谈一下我的理解,我理解这样int (*a); 这样就很容易理解 *a是一个整体,是一个int类型的 而(int *)a 这样的话,a的类型就是int * 就是一个指针,这个思想可以让你很容易的去理解指针。。。
下面谈整体,面试中很多会问到const,这个关键字很容易理解,就是声明定义一个常亮。
但是会问到一些比较变态的问题,就看你的理解,比如:
const int a;
const int *a;
int const *a;
int * const a;
其实这个主要就是const的位置,记忆起来的也很容易,就是看const修饰的是谁;
const int a; const 修饰的是 a 而a是int类型,所以这句话就是生命一个常量a;
const int *a;这个const修饰的是 *a,这个声明一个指向常量的指针, const 修饰的是*a,所以*a是不可以变的 ,a是可以变得。
int const *a;这个和上面是一样的,const 修饰的是*a,所以也是一个声明一个指向常量的指针a、。
int * const a;这个const修饰的是a,a是一个指针,所以这个声明的是一个常量指针、指针的指向是不可以变的,但是内容是可以变得。