C++知识点:const与指针
1. const指针的三种写法
C++种const指针有三种写法
1 | int const *pt = const int *pt; //第一种 |
2. 三种const指针的区别和用例
三种const指针可以通过区分*
和const
的位置来确定不同的功能。简而言之,*
在const
之前为可以修改指向地址的值而不能修改指向的地址,*
在const
之后为可以修改指向的地址但不可以修改指向地址的值。如果*
前后都有const
则地址和值都不可以修改。
2.1 第一种const指针
int const *pt;
第一种const指针*
在const
之后,所以可以修改指向的地址,但不可以修改指向地址的值。
1 | int n = 10; |
注释掉报错行,输出为
1 | Address of pt of n is 0x61fe14 |
2.2 第二种const指针
int *const pt;
第二种const指针*
在const
之前,所以可以修改指向地址的值,但不可以修改指向的地址。
1 | int n = 10; |
注释掉报错行,输出为 1
2Value of pt is 10
Value of pt(modified) is 20
2.3 第三种const指针
const int *const pt
第三种const指针*
前后都有const
,所以地址和值都不可以修改。
1 | int n = 10; |
3. 尽可能在函数形参中使用const指针
如果不希望在函数内部修改数组的值或地址,则应该使用const指针来作为形参传参。例如
1 |
|