概念解释
表示声明常量的const都是顶层const。
用于声明引用的const都是底层const。
顶层const是:指针本身是常量。
底层const是:指针所指的对象是常量。
即是顶层const又是底层const:指向和所指的内容都不可以修改的指针。
C++primer的例题2.30
对于下面的这些语句,请说明对象被声明成了顶层const还是底层const?
const int v2 = 0; int v1 = v2;
int *p1 = &v1, &r1 = v1;
const int *p2 = &v2, *const p3 = &i, &r2 = v2;
**答案:**v2 是顶层const,p2 是底层const,p3 既是顶层const又是底层const,r2 是底层const。
解析:
const int v2 =0 ; 示声明常量的const都是顶层const,因此v2是顶层const。
const int *p2 = &v2 ; p2是常量指针,因而是底层const。
对p3的声明可以改写为:const int *const p3 = &i ; 可以看到const既修饰了类型也修饰了指向,因此p3 既是顶层const又是底层const。
对r2的声明可以改写为:const int &r2 = v2 ; 而用于声明引用的const都是底层const,因此r2是底层const。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)