指针常量和常量指针的区别是上面
时间: 2023-08-08 11:09:57 浏览: 89
指针常量和常量指针是两个不同的概念。
指针常量是指一个指针被定义为常量,即指针所指向的地址不能被改变,但指针所指向的值可以被改变。例如:
```c
int a = 10;
int b = 20;
int* const p = &a; // p是指针常量,指向a的地址
*p = 15; // 可以改变p指向的值,即a的值改变为15
p = &b; // 错误,不能改变p的指向
```
常量指针是指指针所指向的值被定义为常量,即指针所指向的值不能被改变,但指针所指向的地址可以被改变。例如:
```c
int a = 10;
int b = 20;
const int* p = &a; // p是常量指针,指向a的地址,指向的值不能被改变
p = &b; // 可以改变p的指向,但不能通过p改变a和b的值
*a = 15; // 错误,不能改变p指向的值
```
因此,指针常量和常量指针的区别在于它们所修饰的是指针本身还是指针所指向的值。
相关问题
指针常量与常量指针的区别
指针常量和常量指针是两个不同的概念,它们的区别在于指针和常量的位置不同。
指针常量(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语言中的两种不同的指针类型。
常量指针是指一个指针指向的对象是不可修改的,但指针本身是可以修改的。使用常量指针可以保证指针指向的对象的值不被修改。声明一个常量指针需要在指针类型前加上关键字const。例如:
```c
int x = 5;
const int* ptr = &x;
```
在上面的代码中,ptr是一个常量指针,它指向一个整数类型的常量x。虽然ptr本身可以修改,但不能通过ptr来修改x的值。
指针常量是指一个指针本身是不可修改的,但指针所指向的对象是可以修改的。使用指针常量可以保证指针本身不被修改。声明一个指针常量需要在指针变量名前加上关键字const。例如:
```c
int x = 5;
int* const ptr = &x;
```
在上面的代码中,ptr是一个指针常量,它指向一个整数类型的变量x。ptr本身不可修改,但可以通过ptr来修改x的值。
阅读全文