C++ char* 转 const char*
时间: 2024-09-15 17:07:43 浏览: 48
C++中char*转换为LPCWSTR的解决方案
5星 · 资源好评率100%
在C++中,`char*`是一个指向字符的指针,而`const char*`是一个常量字符指针,它表示一个指向字符的常量地址。两者的主要区别在于,当你尝试修改`const char*`所指向的内容时,编译器会报错,因为它表示的是常量数据。
转换方面,通常你可以直接将`const char*`赋值给`char*`,因为`char*`可以接受常量字符串,这被称为“隐式类型提升”。例如:
```cpp
const char* str = "Hello";
char* mutableStr = str; // 正确,str的值被复制给mutableStr
```
但是反过来就不行,即不能从`char*`向`const char*`自动赋值,除非你在赋值前先声明接收端为非常量:
```cpp
char* mutableStr = "Hello"; // 非常量字符数组
const char* constStr = mutableStr; // 错误,不能直接赋值
// 或者这样避免警告:
const char* constStr = (const char*)mutableStr;
```
阅读全文