指针常量与常量指针的区别
时间: 2023-07-20 22:23:58 浏览: 62
指针常量和常量指针是两个不同的概念,它们的区别在于指针和常量的位置不同。
指针常量(const pointer)是一个指针,它指向的对象的值可以被修改,但指针本身的值不能被修改。这意味着,指针常量指向的地址是固定的,但是可以通过指针常量来修改其所指向的变量的值。例如:
```
int num = 10;
int *const p = #
*p = 20; // 修改 p 所指向的变量的值
```
在上面的代码中,p 是一个指针常量,它指向的地址是固定的,但是可以通过 p 来修改 num 的值。
常量指针(pointer to const)是一个指针,它指向的对象的值不能被修改,但指针本身的值可以被修改。这意味着,常量指针指向的地址可以被修改,但是不能通过常量指针来修改其所指向的变量的值。例如:
```
const int MAX_NUM = 100;
const int *p = &MAX_NUM;
// *p = 20; // 错误,不能修改 p 所指向的变量的值
```
在上面的代码中,p 是一个常量指针,它指向的地址可以被修改,但是不能通过 p 来修改 MAX_NUM 的值。
总之,指针常量和常量指针是两个不同的概念,它们的区别在于指针和常量的位置不同。指针常量指针的值不能被修改,但是指向的对象的值可以被修改;常量指针指向的对象的值不能被修改,但是指针本身的值可以被修改。
相关问题
c 指针常量 常量指针 区别
C 语言中有两种不同的指针类型:指针常量和常量指针,它们之间的区别在于指针和指针指向的内容是否可以被修改。
指针常量是一个指针,它指向的地址是固定的,不能被修改,但是指针本身可以被修改。例如,以下代码定义了一个指向整型变量的指针常量 p,它被初始化为指向变量 a 的地址,然后通过 p 修改 a 的值:
```
int a = 10;
int *const p = &a;
*p = 20; // 修改 a 的值为 20
```
常量指针是一个指针,它指向的地址可以被修改,但是指针指向的内容不能被修改。例如,以下代码定义了一个指向整型变量的常量指针 p,它被初始化为指向变量 a 的地址,然后尝试通过 p 修改 a 的值:
```
int a = 10;
const int *p = &a;
*p = 20; // 编译错误,无法修改指针指向的内容
```
总之,指针常量和常量指针的区别在于指针和指针指向的内容是否可以被修改。指针常量指向的地址不能被修改,但是指针本身可以被修改;常量指针指向的地址可以被修改,但是指针指向的内容不能被修改。
常量指针 与 指针常量
常量指针和指针常量是两个不同的概念。
常量指针是指指针指向的内存地址不可修改,但是指针指向的内存中的内容可以被修改。可以使用 `const` 关键字来定义一个常量指针,例如 `const int *p` 表示 `p` 是一个指向 `int` 类型的常量指针。
指针常量是指指针本身是一个常量,指针指向的内存地址可以被修改,但是指针指向的内存中的内容不可修改。可以使用 `const` 关键字来定义一个指针常量,例如 `int * const p` 表示 `p` 是一个指向 `int` 类型的指针常量。
区别在于常量指针是可以修改指针指向的内存中的内容,但是不能修改指针指向的内存地址;而指针常量是可以修改指针指向的内存地址,但是不能修改指针指向的内存中的内容。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)