c++ - 顶层const跟底层const有啥区别
怪我咯
怪我咯 2017-04-17 14:53:39
0
2
558

怎么感觉顶层const跟底层const的意思都是定义了就不能改了。 比如 const in i =1; 跟 int const i =1;有啥区别

怪我咯
怪我咯

走同样的路,发现不同的人生

Antworte allen(2)
迷茫

int const i和const int i没区别,都表示i是常量。const int p和int const p也一样,表示p是常量,但p是变量;int const p和他们不一样,表示p是常量,*p是变量。

巴扎黑

顶层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就不会改变变量的值了,而其他人乱动我也没办法。
一些浅见,请多指教。

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage