100 17 C:\Users\Lenovo\Documents\贪吃蛇.cpp [Error] invalid conversion from 'int*' to 'int' [-fpermissive]
时间: 2024-09-21 22:09:29 浏览: 58
Source,c语言有趣的源码,c语言
错误信息 "invalid conversion from 'int*' to 'int' [-fpermissive]" 出现在C++编程中,表示你在尝试将一个整数指针(int*)转换成整数值(int),但在当前上下文中这是不允许的。`-fpermissive` 可能是你使用的编译器选项,它放宽了一些严格的类型检查,但这并不意味着这样的转换总是被允许。
通常,这种错误发生在以下几个情况:
1. 你试图从数组名或指向变量的指针获取值,而不是直接访问变量本身。例如,`int arr[] = {100, 17}; int num = *arr;` 这里 `arr` 实际上是一个指向第一个元素的指针,需要解引用 `*arr` 才能得到整数值。
2. 某函数期望一个整数值作为参数,而你传递了一个整数指针。除非该函数特别说明可以接受指针作为参数并解引用,否则你需要先取指针内容。
修复这个错误,你可以选择解引用指针:
```cpp
int num = *(&arr[0]); // 解引用数组的第一个元素
```
或者如果你确实想传递地址,则应调整函数参数类型为`int*`:
```cpp
void function(int* value) {
// 现在函数可以直接接收整数指针
}
function(arr); // 传递数组的首地址
```
阅读全文