常量指针和指针常量的区别
时间: 2023-08-08 09:10:30 浏览: 42
常量指针和指针常量是两个不同的概念。
常量指针是指一个指针指向一个常量对象,该指针不允许通过指针修改所指向的对象的值,但可以改变指针本身的值,即可以让指针指向其他对象。使用关键字"const"来修饰指针所指向的对象。
例如,`const int* ptr`表示ptr是一个指向常量int的指针,不能通过ptr修改所指向的int对象的值,但可以修改ptr指向其他int对象。
指针常量是指一个指针本身是一个常量,不允许改变指针本身的值,但可以通过指针修改所指向的对象的值。使用关键字"const"来修饰指针本身。
例如,`int* const ptr`表示ptr是一个指针常量,不能改变ptr的值,即不能让ptr指向其他对象,但可以通过ptr修改所指向的int对象的值。
综上所述,常量指针和指针常量之间的区别在于对待指针和所指向对象的态度不同。常量指针不允许修改所指向的对象的值,但可以修改指针本身的值;而指针常量不能修改指针本身的值,但可以修改所指向对象的值。
相关问题
指针常量和常量指针的区别
指针常量和常量指针的区别在于指针本身的可变性。
指针常量是指指针本身是一个常量,指向的值可以改变。例如:
```
const int* p; // 常量指针,指向的值不能改变
int* const p; // 指针常量,指针本身不能改变,但指向的值可以改变
const int* const p; // 指向的值和指针本身都不能改变
```
常量指针是指指针指向的值是一个常量,指针本身可以改变。例如:
```
int a = 10;
int b = 20;
const int* p = &a; // 常量指针,指向的值不能改变
p = &b; // 合法,指针本身可以改变
*p = 30; // 不合法,指向的值不能改变
```
总的来说,指针常量和常量指针的区别在于指针本身的可变性,指针常量的指针本身是常量,而常量指针的指向的值是常量。
指针常量和常量指针有什么区别
指针常量和常量指针是两个不同的概念。
指针常量是指指针本身是一个常量,即指针的值(即所指向的内存地址)不能被修改。但是,指针所指向的变量的值可以被修改。例如,`int* const ptr` 声明了一个指向整数的指针常量,意味着 `ptr` 的值不能被修改,但是可以通过 `ptr` 修改所指向的整数的值。
常量指针是指指针所指向的变量是一个常量,即所指向的变量的值不能被修改。但是,指针本身的值可以被修改。例如,`const int* ptr` 声明了一个指向常量整数的常量指针,意味着所指向的整数的值不能通过 `ptr` 修改,但是可以通过修改 `ptr` 来指向其他变量。
总结来说,指针常量是指针本身是一个常量,而常量指针是指所指向的变量是一个常量。