Que hace ? en C significa?

¿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

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.