gpt4 book ai didi

c - 为什么测试 float 为 null 会产生编译错误“二进制 == 的无效操作数(有 'float' 和 'void *' )”?

转载 作者:行者123 更新时间:2023-11-30 18:46:31 25 4
gpt4 key购买 nike

    scanf("%f", &lista2.pret);
fflush(stdin);

if (lista2.pret == NULL ) goto eror2; // error

fseek(o,(nn-1)*sizeof(lista2),SEEK_SET);
fwrite(&lista2,sizeof(lista2),1,o);

break;
}

fclose(o);
break;
}

错误:

[Error] invalid operands to binary == (have 'float' and 'void *')`

出了什么问题?

最佳答案

== 运算符有一个约束,使得:

——两个操作数都是算术类型;

——两个操作数都是指向兼容类型的限定或非限定版本的指针;

——一个操作数是指向对象类型的指针,另一个是指向void的限定或非限定版本的指针;或

——一个操作数是指针,另一个是空指针常量。

lista2.pret 显然是浮点(算术)类型,因此不能与 NULL 进行比较。只有指针类型可以与NULL进行比较。

关于c - 为什么测试 float 为 null 会产生编译错误“二进制 == 的无效操作数(有 'float' 和 'void *' )”?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50896259/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com