29 25 C:\Users\Administrator\Documents\未命名2.cpp [Error] invalid conversion from 'char' to 'char*' [-fpermissive]
时间: 2024-11-09 07:28:07 浏览: 10
错误信息 "invalid conversion from 'char' to 'char*' [-fpermissive]" 意味着在 C++ 编译过程中,试图将单个字符(`char` 类型)转换成字符指针(`char*`),但这种转换是不允许的,除非编译器启用了 `-fpermissive` 参数来放宽某些规则。
通常,在 C++ 中,当你期望接收一个字符串或字符数组时,需要使用 `const char*` 或 `std::string` 类型的指针。如果你尝试直接将单个字符赋给 `char*`,例如:
```cpp
char c = 'A'; // 定义一个字符
char* p = &c; // 这里不是正确的字符串或数组初始化
// 错误:试图将字符赋给字符指针
p = 'B'; // 这行会报错,因为编译器预期的是指针地址而不是字符
```
要解决这个问题,你应该创建一个包含多个字符的数组,或者明确地将字符转换为字符串:
```cpp
char c = 'A';
char str[2] = {'B', '\0'}; // 创建一个包含单字符的字符串字面量
p = str; // 正确的赋值
// 或者使用 std::string
std::string s("B"); // 创建字符串
p = s.c_str(); // 将 std::string 转换为 const char*
```
阅读全文