我正在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的整数值,在这个上下文中被计算为一个空指针常量,但是如果您的意思是空,就说空