如何解决[Error] invalid conversion from 'char' to 'const char*' [-fpermissive]
时间: 2024-01-29 16:04:57 浏览: 148
这个错误通常是因为你在使用字符串时,把一个字符赋值给了一个常量字符指针(const char*)或者字符串变量。你需要将字符转换为字符串才能正确地赋值。
例如,如果你想把字符 'a' 赋值给一个字符串变量 str,你需要这样写:
```
char c = 'a';
char str[2];
str[0] = c;
str[1] = '\0';
```
如果你想把字符 'a' 赋值给一个常量字符指针 ptr,你需要这样写:
```
char c = 'a';
const char* ptr = "a";
```
或者这样写:
```
char c = 'a';
char str[2];
str[0] = c;
str[1] = '\0';
const char* ptr = str;
```
这样就可以避免这个错误了。
相关问题
);//调用删除函数 显示26 19 D:\C语言\C语言课后作业\实验13.5.cpp [Error] invalid conversion from 'const char**' to 'char**' [-fpermissive]
这个错误是因为 `del_name` 函数的参数类型是 `char **`,表示一个指向指针数组的指针,而 `name` 数组的类型是 `const char *` 指针数组,表示一个指向只读字符串常量的指针数组,两者类型不匹配。
为了解决这个错误,你可以修改 `del_name` 函数的参数类型为 `const char **`,表示一个指向只读字符串常量的指针数组的指针,代码如下:
```
int del_name(const char **name, int n)
{
//...
}
```
这样修改后,编译器就不会再报错了。
[Error] invalid conversion from 'const char*' to 'char*' [-fpermissive]
这个错误通常是由于将const char*类型的值赋给char*类型的变量或参数而导致的。C++中,const char*表示一个指向常量字符的指针,而char*表示一个指向字符的指针,因此不能直接将const char*类型的值赋给char*类型的变量或参数。
解决方法可以是将char*类型的变量或参数改为const char*类型,或者使用const_cast进行类型转换。注意,使用const_cast进行类型转换需要谨慎,因为会破坏const修饰的变量的常量性。
阅读全文