expected ‘const char *’ but argument is of type ‘char (*)[20]’
时间: 2024-04-14 07:30:21 浏览: 736
解决 VSCode 编辑 vue 项目报错 Expected indentation of 2 spaces but found 4
这个错误是由于参数类型不匹配导致的。函数期望接收一个`const char *`类型的参数,但实际传递的是一个`char (*)[20]`类型的参数。
`char (*)[20]`表示一个指向长度为20的字符数组的指针。而`const char *`表示一个指向字符常量的指针。
要解决这个错误,你需要确保传递给函数的参数类型与函数定义中的参数类型匹配。如果你想将`char (*)[20]`类型的参数转换为`const char *`类型,可以使用类型转换。
例如:
```c
void foo(const char *str) {
// 函数体
}
int main() {
char arr[20] = "Hello";
foo((const char *)arr); // 使用类型转换将参数类型转换为const char *
return 0;
}
```
在上面的例子中,我们使用了类型转换将`arr`的类型从`char (*)[20]`转换为`const char *`,然后将其作为参数传递给函数`foo`。这样就可以避免参数类型不匹配的错误。
阅读全文