C++ const关键字

时间:2019-11-16
本文章向大家介绍C++ const关键字,主要包括C++ const关键字使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

关于顶层const 底层const

const与指针配合使用有两种作用,一是限制指针变量,二是限制指针变量指向的数据

限制指针变量本身

1 int * const p2;//const修饰的是指针变量

限制指针变量本身的意思是,指针变量本身的值不能被修改,所以被 const 修饰的指针变量指针只能在定义时初始化,不能定义之后再赋值,错误代码如下

限制指针变量指向的数据

1 const int *p1;
2 int const *p1;

上面两种写法都可以,一般使用第一种,限制指针变量指向的数据的意思就是指针可以指向不同的变量(指针本身的值可以修改),但是不能用指针修改指针指向的数据的值,错误代码如下

区分const是限制的指针变量还是指针变量指向数据的值:const 离变量名近就是用来修饰指针变量的,离变量名远就是用来修饰指针指向的数据,如果近的和远的都有,那么就同时修饰指针变量以及它指向的数据。

当然也可以同时限制指针变量和指针变量指向的数据的值,写法如下

1 const int * const p2;

上面这种写法使指针变量和指针变量指向数据的值都不能修改

顶层const与底层const

顶层const

定义为变量本身是一个常量,因此对一切的内置类型常量而言,所有的const都是顶层const
对指针来说,常量指针是顶层const,对于引用则没有顶层const的概念。

底层const

只在指针和引用上有效,其定义是该指针指向或该引用绑定的对象是常量。
因此:顶层const和底层const,引用只有底层const。

原文地址:https://www.cnblogs.com/MengX/p/11873165.html