判断 C++ 中 const 修饰问题的技巧
判断 C++ 中 const 修饰问题的技巧
最近我在阅读 <C++ Primer>
时被书中 2.4 const 限定符
这一节内容搞得很头疼, 于是寻觅互联网, 在知乎上发现一个不错的技巧, 特此记录下来.
规则
const默认是修饰它左边的符号的,如果左边没有,那么就修饰它右边的符号
例一
1 |
|
const
左边没有, 看右边的一个, 是int
, 自然就是p指针指向的值不能改变.
注意, 此处因为个人代码风格的问题, 表示指针的 *
是紧靠int
例二
1 |
|
此时 const
左边有int
, 效果和例一, 还是修饰的int
.
例三
1 |
|
修饰的是*
, 即指针不能改变.
例四
1 |
|
第一个 const
左边没有, 所以修饰的是右边的 int
, 第二个 const
左边有, 所以修饰的是 *
, 因此指针和指针指向的值都不能改变.
例五
1 |
|
这里两个 const
修饰的都是 int
了, 所以重复修饰了, 有的编译器可以通过但会有警告, 有的可能直接编译错误.
例六
1 |
|
留做练习题, 自己分析吧, 欢迎大家在评论区留下自己的见解.
总而言之, 看到 const
就看它左边是什么, 如果左边没有, 才看右边的, 就永远不会出错! ! !
写在最后
既然, 本人习惯将 *
与 int
绑定在一起由例一可以看出, 这样会造成一定的误解.
那么不妨修改我自己的代码风格为将 const
置于 int
之后.
于是便有:
1 |
|
2023-02-14 IP属地: 曹县
判断 C++ 中 const 修饰问题的技巧
https://dengwuli.github.io/2023/02/14/其他/判断 C++ 中 const 修饰问题的技巧/