gcc编译出现:error: invalid operands to binary & (have ‘char *’ and ‘int *’)
时间: 2024-05-08 20:22:10 浏览: 202
这个错误通常是因为你在使用 & 运算符时,左边是一个指向字符数组的指针,右边是一个指向整数的指针,而这两种类型是不兼容的。
例如:
```c
char *str = "hello";
int *num_ptr = malloc(sizeof(int));
int result = str & num_ptr; // 这里会出现上述的错误
```
要解决这个问题,你需要确保两边的数据类型是兼容的,或者重新考虑你的代码逻辑。
如果你的意图是想将一个指针转换为整数类型,可以使用类型转换操作符将其强制转换为整数类型:
```c
char *str = "hello";
int num = (int)str; // 将指针转换为整数类型
```
但是需要注意的是,将指针转换为整数类型可能会导致一些未定义的行为,因为指针和整数类型的内存表示方式可能不同。因此,在进行此类转换时,需要确保你的代码逻辑是正确的。
阅读全文