c++ char *禁止执行字符串字面量
时间: 2023-11-22 07:04:31 浏览: 224
c++面试字符串_C++字符串_
在 C++ 中,使用字符串字面量来初始化 `char*` 指针是非法的,因为字符串字面量是常量,而 `char*` 指针是指向非常量的指针。如果你试图修改字符串字面量,会导致未定义的行为。
正确的方法是使用 `const char*` 指针来指向字符串字面量,因为 `const` 修饰符表示指针指向的是一个常量,不能被修改。例如:
```cpp
const char* str = "hello";
```
如果需要修改字符串,应该使用字符数组或者 `std::string` 类型来存储字符串,例如:
```cpp
char str[] = "hello";
std::string str2 = "world";
```
阅读全文