顶层const 和 底层const

发布时间 2023-12-10 14:56:37作者: ponder776

在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指向的内容不能改变)。