C++ char* const cp与 const char* cp
作者:野牛程序员:2024-07-29 16:39:16 C++阅读 2431
C++ char* const cp与 const char* cp
在C++中,char* const cp
和 const char* cp
是两种不同的指针声明方式,它们的区别在于指针的常量性和指向的内容的常量性。
char* const cp
char* const cp
表示一个常量指针(constant pointer),即指针本身是常量,不能修改指向的地址,但是指针指向的内容是可以修改的。
char* const cp = someCharPointer; // 允许修改指针指向的内容 *cp = 'A'; // 不允许修改指针本身的地址 cp = anotherCharPointer; // 错误
const char* cp
const char* cp
表示一个指向常量字符的指针(pointer to constant char),即指针指向的内容是常量,不能修改指向的内容,但是指针本身是可以修改的。
const char* cp = someCharPointer; // 不允许修改指针指向的内容 *cp = 'A'; // 错误 // 允许修改指针本身的地址 cp = anotherCharPointer; // 正确
总结
char* const cp
:指针是常量,指向的内容可以修改。const char* cp
:指向的内容是常量,指针本身可以修改。
示例代码
下面的示例代码演示了这两种指针的使用和限制:
#include <iostream> int main() { char data[] = "Hello"; char data2[] = "World"; // char* const: 常量指针,指向的内容可变 char* const constPointer = data; constPointer[0] = 'h'; // 修改指向内容,正确 // constPointer = data2; // 修改指针本身,错误 std::cout << "constPointer: " << constPointer << std::endl; // const char*: 指向常量字符的指针,指针可变 const char* pointerToConst = data; // pointerToConst[0] = 'h'; // 修改指向内容,错误 pointerToConst = data2; // 修改指针本身,正确 std::cout << "pointerToConst: " << pointerToConst << std::endl; return 0; }
运行此代码,输出结果:
constPointer: hello pointerToConst: World
在这段代码中:
constPointer
是一个常量指针,可以修改它指向的数据,但不能修改它指向的地址。pointerToConst
是一个指向常量字符的指针,可以修改指针指向的地址,但不能修改它指向的数据。
野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
- 上一篇:c++ 如何将char数组转换为byte数组?
- 下一篇:c语言char怎么赋值