¿Qué significa un signo de interrogación (?) En C?
?
Es el primer símbolo del operador ?:
ternario.
a = (b==0) ? 1 : 0;
a
tendrá el valor 1 si b
es igual a 0
, y 0 en caso contrario.
Además de otras respuestas ?
Puede ser parte de un trigraph .
Este es un operador ternario que es un operador condicional que usa como if-else
ejemplo
int i=1; int j=2; int k; k= i > j ? i : j; //which is same as if(i>j) k=i; else k=j;
Uso: Sintaxis de ?: Es
assignment_Variable = Condition ? value_if_true : value_if_false;
Eso es probablemente una parte del operador ternario :
const int numApples = …; printf("I have %i apple%s.\n", numApples == 1 ? "" : "s");
Este es un llamado operador condicional. Puede acortar su statement if else con este operador.
El siguiente enlace debe explicarlo todo.
http://www.crasseux.com/books/ctutorial/The-question-mark-operator.html
Es un operador condicional. Por ejemplo, consulte el siguiente enlace http://en.wikipedia.org/wiki/Conditional_operator
Es el operador ternary
, consulte http://en.wikipedia.org/wiki/Ternary_operation#C.2C_C.2B.2B.2C_C.23.2C_Objective-C.2C_Java.2C_JavaScript.2C_ActionScript
Lo más probable es que el ‘?’ Es el operador ternario. Su gramática es:
RESULT = (COND) ? (STATEMEN IF TRUE) : (STATEMENT IF FALSE)
Es una buena forma abreviada de la típica statement if-else:
if (COND) { RESULT = (STATEMENT IF TRUE); } else { RESULT = (STATEMENT IF FALSE);
ya que generalmente puede caber en una línea y puede mejorar la legibilidad.
Algunas respuestas aquí se refieren a un trigraph, que es relevante para el preprocesador de C. Echa un vistazo a este progtwig realmente tonto, trigraphs.c
:
# /* preprocessor will remove single hash symbols and this comment */ int main() { char *t = "??="; char *p = "??/""; char *s = "??'"; ??(, ??), ??! ??<, ??>, ??- return 0; }
invocando solo el preprocesador c ejecutando gcc -E -trigraphs trigraph.c
la salida es
int main() { char *t = "#" char *p = "\""; char *s = "^"; [, ], | {, }, ~ return 0; }
Esperemos que eso aclare un poco qué son los trigraphs, y qué es un ‘?’ “significa” en C.