我正在C代码中处理一个项目,并尝试使用三元if语句,但它总是返回false,我不明白为什么。
三元if语句是:

(reportParameterArray[P_TARGET] == '\0') ? reportParameterArray[P_TARGET] : "HELLO"

我要做的是,如果reportParameterArray[P_TARGET]不等于\0,那么它应该输出实际值,否则它会打印hello。但目前它总是打印HELLO
当我调试时,我可以看到值是0,所以它应该打印“HELLO”,但是当有实际值时,它仍然打印HELLO,而不是reportParameterArray[P_TARGET]的实际值。
reportParameterArray[P_TARGET]的类型为char**
感谢您提供的任何帮助。

最佳答案

你应该检查一下

(reportParameterArray[P_TARGET] == NULL)

因为
(reportParameterArray[P_TARGET] == '\0')

您正在将char指针与char进行比较。
(*reportParameterArray[P_TARGET] == '\0')

实际上是可以的-'\0'是一个0的整数值,在这个上下文中被计算为一个空指针常量,但是如果您的意思是空,就说空

10-06 12:30