C++ const 指针详解:const int *p 与 int const *p 的区别
C++ const 指针详解:const int *p 与 int const *p 的区别
在 C++ 中,const int *p 和 int const *p 都声明了一个指向 const int 类型的指针 p。这意味着指针 p 所指向的值是不能被修改的。
const int *p
const int *p 是指针 p 是一个指向 const int 类型的指针,也就是指针 p 是可变的(可以指向不同的地址),但是指针所指向的值是不可变的。
示例:
const int a = 10;
const int *p = &a;
*p = 20; // 错误,不能修改指针 p 所指向的值
p = nullptr; // 正确,可以修改指针 p 的指向
int const *p
int const *p 是一个相同的声明,同样表示指针 p 是一个指向 const int 类型的指针,指针 p 是可变的,但是指针所指向的值是不可变的。
示例:
int b = 30;
int const *p2 = &b;
*p2 = 40; // 错误,不能修改指针 p2 所指向的值
p2 = nullptr; // 正确,可以修改指针 p2 的指向
总结
因此,const int *p 和 int const *p 这两个声明的效果是一样的,它们都声明了一个指向不可修改的 int 类型的指针。
注意:
const关键字在*的左边,表示指针所指向的值是不可修改的。- 指针本身的值(也就是指针所指向的地址)是可以修改的。
原文地址: https://www.cveoy.top/t/topic/zYR 著作权归作者所有。请勿转载和采集!