Por qué comipla
Publicado por el_mogur (202 intervenciones) el 10/12/2004 14:06:34
Hola,
¿Alguien me puede decir por qué compila la siguiente línea de código? (Al menos en Borland C++ Builder 5.0...)
( (a > 0) ? a : b ) = 8;
Eso significa que la asignación se hace a 'a' o a 'b' dependiendo del valor de 'a'... pero entonces, significa que la expresión del operador ternario, tiene tipo "int&"...
Vamos, mi pregunta se puede hacer de otra forma. Cuando vemos algo como:
int a, b;
Sabemos que la expresión "a + b" tiene tipo int, porque entendemos el funcionamiento del operador +, pero... ¿cómo obtiene el compilador el tipo de una expresión con el operador ternario?
Saludos
¿Alguien me puede decir por qué compila la siguiente línea de código? (Al menos en Borland C++ Builder 5.0...)
( (a > 0) ? a : b ) = 8;
Eso significa que la asignación se hace a 'a' o a 'b' dependiendo del valor de 'a'... pero entonces, significa que la expresión del operador ternario, tiene tipo "int&"...
Vamos, mi pregunta se puede hacer de otra forma. Cuando vemos algo como:
int a, b;
Sabemos que la expresión "a + b" tiene tipo int, porque entendemos el funcionamiento del operador +, pero... ¿cómo obtiene el compilador el tipo de una expresión con el operador ternario?
Saludos
Valora esta pregunta


0