【发布时间】:2020-02-04 18:02:01
【问题描述】:
为什么类型转换在这里不起作用..?
#include<stdio.h>
int main(){
int x = 5;
float y = 7.0;
float *p = &y;
int *q = &x;
printf("p is %d\nq is %d\np - q is %d", p, q, (p - q));
return 0;
}
我收到此错误invalid operands of types 'float*' and 'int*' to binary 'operator-';什么意思?
【问题讨论】:
-
这意味着你不能从指向
float的指针中减去指向int的指针,因为它们指向不同的类型。另外,无论如何减去它们有什么意义? -
你没有任何类型转换
-
指针比较仅在两个指针都是指向同一个对象或同一个对象末尾的一个元素时才有效,其中一个对象可能是一个数组。
-
你想做什么?
标签: c pointers casting implicit-conversion