#include <iostream>
// 函数接收const char *类型参数
void operateOnConstCharPtr(const char *p) {
// 可以读取p指向的内容,但不能修改它
std::cout << "From operateOnConstCharPtr: " << p << std::endl;
// p = "new string"; // 这是合法的,因为p本身不是const
}
// 函数接收char * const类型参数
void operateOnCharPtrConst(char * const p) {
// 可以修改p指向的内容
*p = 'A';
std::cout << "From operateOnCharPtrConst: " << p << std::endl;
// p = "new string"; // 这是不合法的,因为p是const
}
int main() {
const char *constCharPtr = "Hello, World!";
char nonConstChar[] = "Hello, World!";
char *charPtrConst = nonConstChar;
operateOnConstCharPtr(constCharPtr);
operateOnCharPtrConst(charPtrConst);
return 0;
}
const char *p
:
p
是一个指向const char
的指针。
- 可以修改
p
,使其指向其他字符串。
- 不能通过
p
修改所指向的字符串内容。
char * const p
:
p
是一个const
指针,它一旦初始化,就不能再指向其他地址。
- 但可以通过
p
修改所指向的字符串内容。