¿Qué significa un signo de interrogación (?) En C?¿Qué hace? en C significa?
Respuesta
?
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.
Es un operador condicional. Por ejemplo, consulte el siguiente enlace http://en.wikipedia.org/wiki/Conditional_operator
Eso es probablemente una parte de la ternary operator:
const int numApples = …;
printf("I have %i apple%s.\n", numApples == 1 ? "" : "s");
Solo para salvar a las generaciones futuras de cualquier confusión aquí. Es el "operador condicional". Simplemente resulta ser un operador ternario, del cual solo hay uno en C y C++. Hay muchos operadores unarios (~,!, -) y binarios (+, -, <<) en C/C++ también. Neato! –
Esto es lo que se denomina operador condicional. Puede acortar su instrucción if else con este operador.
El siguiente enlace debe explicar todo
http://www.crasseux.com/books/ctutorial/The-question-mark-operator.html
Adicionalmente a otras respuestas, ?
puede ser parte de un trigraph.
También puede ser parte de una cadena o carácter en general sin ser un trigraph: 'char c = '?'; char const * s = "?" '. –
Esta es una ternary Operator que es utiliza operador condicional 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;
Más probable el '?' es el operador ternario. Su gramática es:
RESULT = (COND) ? (STATEMEN IF TRUE) : (STATEMENT IF FALSE)
es un buen atajo para la típica instrucción if-else:
if (COND) {
RESULT = (STATEMENT IF TRUE);
} else {
RESULT = (STATEMENT IF FALSE);
ya que puede adaptarse por lo general en una línea y puede mejorar la legibilidad.
Algunas respuestas aquí se refieren a un trigraph, que es relevante para el preprocesador C. Echar un vistazo a este programa realmente tonto, trigraphs.c
:
# /* preprocessor will remove single hash symbols and this comment */
int main()
{
char *t = "??=";
char *p = "??/"";
char *s = "??'";
??(, ??), ??! ??<, ??>, ??-
return 0;
}
invocando sólo el preprocesador C mediante la ejecución de gcc -E -trigraphs trigraph.c
la salida es
int main()
{
char *t = "#"
char *p = "\"";
char *s = "^";
[, ], | {, }, ~
return 0;
}
Esperemos que clarifica un poco lo que un trigrafos son, y lo que una '?' "significa" en C.
- 1. ¿Qué hace? operador significa en C#?
- 2. ¡Qué hace! significa en Objective-C
- 3. ¿Qué significa '??' significa en C#?
- 4. ¡Qué hace! significa en ruby?
- 5. Lo hace por (;;) significa en C#
- 6. ¿Qué hace el -> significa en C objetiva
- 7. ¿Qué significa :: en C++?
- 8. ¿Qué significa y hace MYSQLI_NUM?
- 9. ¿Qué significa :: :: en C++?
- 10. ¿Qué significa PorterDuff.Mode en graphics.What androide hace?
- 11. ¿Qué hace el? en XML Android significa
- 12. ¿Qué hace | 5E | significa en Common Lisp?
- 13. lo que hace "@" significa en C#
- 14. ¿Qué significa #pragma en C?
- 15. ¿Qué significa() => en C#?
- 16. ¿Qué significa ~ en C++?
- 17. ¿Qué significa ** en C
- 18. ¿Qué significa "&" en C++?
- 19. ¿Qué significa [,] en C#?
- 20. ¿Qué significa^= en c/C++?
- 21. ¿Qué significa "() =>" en C#?
- 22. ¡Qué hace! (doble signo de exclamación) significa?
- 23. ¿Qué significa "para (;;)" en C#?
- 24. ¿Qué significa '?' hacer en C++?
- 25. ¿Qué significa "var" en C#?
- 26. ¿Qué significa -> en C++?
- 27. ¿Qué significa "clase:" en C++?
- 28. ¿Qué significa/*! */Mean en C#?
- 29. ¿Qué significa "= 0" en C++?
- 30. ¿Qué significa (vacío **) en C?
¿Podría darnos un ejemplo contextual de dónde está viendo el '?'? –
@bitcrazed: Simplemente curioso: ¿en qué otro uso está pensando el operador ternario? – chris
@chris es también (en serio, viejo código) parte de un [trigraph] (http://msdn.microsoft.com/en-us/library/bt0y4awe.aspx), cuando Benoit me golpeó para responder. – Rup