Heim > Fragen und Antworten > Hauptteil
怎么感觉顶层const跟底层const的意思都是定义了就不能改了。 比如 const in i =1; 跟 int const i =1;有啥区别
迷茫2017-04-17 14:55:39
int const i和const int i没区别,都表示i是常量。const int p和int const p也一样,表示p是常量,但p是变量;int const p和他们不一样,表示p是常量,*p是变量。
巴扎黑2017-04-17 14:55:39
顶层const
和底层的const
主要是针对指针来说的。
所谓顶层const
是指指针的不变性,即指针指向的位置不变!int *const p = &i;
则p这个值不会再变,在这里你可以通过其他方式改变i这个值,比如说你可以直接赋值i = 9;
。这样const
也拿你没办法。
而底层const
则是指指针指向的对象或者内置类型不变,const int *p = &i;
则这里的i的值就不许再变了,但是你仍然可以改变p
,比如说你可以这样const int *p = &j;
我理解的const
是一种约定,是说我用了const
就不会改变变量的值了,而其他人乱动我也没办法。
一些浅见,请多指教。