【发布时间】:2013-05-17 06:38:59
【问题描述】:
我正在使用 C 代码编写一个项目,并尝试使用三元 if 语句,但它总是返回 false,我不明白为什么。
三元if语句是:
(reportParameterArray[P_TARGET] == '\0') ? reportParameterArray[P_TARGET] : "HELLO"
我想要做的是如果reportParameterArray[P_TARGET] 不等于\0,那么它应该输出实际值,否则它会打印你好。但目前它总是打印HELLO。
当我调试时,我可以看到该值为 \0,因此它应该打印“HELLO”,但是当有实际值时,它仍然打印 HELLO,而不是 reportParameterArray[P_TARGET] 的实际值。
reportParameterArray[P_TARGET] 是 char** 类型
感谢您提供的任何帮助。
【问题讨论】:
-
你试过检查
(reportParameterArray[P_TARGET] == NULL)吗? -
reportParameterArray[P_TARGET]似乎是char而"HELLO"是一个字符串。如果您的意思是空指针,请使用 NULL 而不是'\0'。 -
reportParameterArray[P_TARGET] 的类型为
char**。我尝试使用 NULL 而不是 \0 但得到相同的结果 -
它工作正常,检查指针分配 ->
char **reportParameterArray = ? -
与 (reportParameterArray[P_TARGET] == '\0') 您正在将 char 指针与 char 进行比较。
标签: c ternary-operator