C++顶层const和底层const的区别

来源:互联网 发布:sql server r2 32位 编辑:程序博客网 时间:2024/06/08 07:17
顶层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就不会改变变量的值了,而其他人乱动我也没办法。