在C++中,const
关键字可以用于创建常量,这意味着一旦定义,其值就不能改变。const
可以修饰变量、指针、引用等,根据const
修饰的对象不同,我们将其分为顶层const和底层const。
-
顶层const:当
const
修饰的是对象本身,即对象本身不可被修改,我们称之为顶层const。例如,对于const int a = 10;
,a
就是一个顶层const,因为a
本身的值不能改变12。 -
底层const:当
const
修饰的是对象所指向的内容,即对象指向的内容不可被修改,我们称之为底层const。例如,对于const int *p = &a;
,p
是一个底层const,因为p
指向的内容(即a
的值)不能改变12。
这两种const可以同时存在,例如const int * const p = &a;
,这里的p
既是顶层const(p
本身的值不能改变),也是底层const(p
指向的内容不能改变)。