const修饰指针和变量
时间: 2023-07-20 20:20:47 浏览: 107
const关键字可以用来修饰指针和变量。如果const修饰的是指针,则指针所指向的值不能被修改,但是指针本身可以被修改。例如:
```c++
const int* p; // p是指向const int的指针,p所指向的值不能被修改
int const * p; // 与上一行等价
int x = 1;
p = &x; // 合法
*p = 2; // 不合法,p所指向的值不能被修改
```
如果const修饰的是变量,则变量的值不能被修改。例如:
```c++
const int x = 1; // x是一个const int,其值不能被修改
x = 2; // 不合法,x的值不能被修改
```
需要注意的是,const修饰的变量并不一定是常量,因为它的值可以在编译时期被确定。另外,在函数参数中应用const修饰符可以避免函数对变量的修改。
相关问题
const修饰指针类型变量时如何分辨该指针的只读特性
当 const 关键字用于修饰指针类型变量时,它指定了该指针所指向的数据为只读。在声明一个 const 指针时,要将 const 关键字置于星号(*)的左侧。例如:
```c++
const int* p;
```
这表示 p 是一个指向常量的指针,即它所指向的数据不能被修改。如果要声明一个指针,使它既不能指向常量,也不能修改被指向的数据,可以将 const 关键字放在星号左右两侧,如下所示:
```c++
const int* const p;
```
这表示 p 是一个指向常量的常指针,即它既不能修改指针所指向的数据,也不能指向其他数据。
const修饰指针变量
当const修饰指针变量时,表示指针本身是不可修改的,即指针的值不能再指向其他地址。但是指针所指向的变量的值可以修改。例如,当使用const修饰int *const p时,p的值不能改变,即不能再指向其他地址,但是可以通过p修改所指向的变量的值。而当使用const修饰const int *p时,p的值可以改变,即可以指向其他地址,但是不能通过p修改所指向的变量的值。
阅读全文