最有可能的'?是三元运算符。它的语法是:
RESULT = (COND) ? (STATEMEN IF TRUE) : (STATEMENT IF FALSE)
这是典型的 if-else 语句的一个很好的简写:
if (COND) {
RESULT = (STATEMENT IF TRUE);
} else {
RESULT = (STATEMENT IF FALSE);
因为它通常可以放在一行上,并且可以提高可读性。
这里的一些答案是指与 C 预处理器相关的三元组。看看这个非常愚蠢的程序,trigraphs.c:
# /* preprocessor will remove single hash symbols and this comment */
int main()
{
char *t = "??=";
char *p = "??/"";
char *s = "??'";
??(, ??), ??! ??<, ??>, ??-
return 0;
}
gcc -E -trigraphs trigraph.c通过运行输出仅调用 c 预处理器是
int main()
{
char *t = "#"
char *p = "\"";
char *s = "^";
[, ], | {, }, ~
return 0;
}
希望这能澄清一下什么是三元组,什么是“?” C中的“意思”。