[C con Clase] La prioridad del operador ?:

Giancarlo gcdotta en gmail.com
Vie Mayo 28 18:21:53 CEST 2010


Hola a todos

Creía que el operador ?: tenía más prioridad que el de asignación =, pero en el siguiente ejemplo ocurren cosas raras:

int a=1, b=2;
a>b? b : a = 3;
a>b? b : a = 5;
cout << "a=" << a << ", b=" << b << endl;

obtengo la siguiente salida:
a=3, b=2 :-o
que es errónea.

Sin embargo si coloco paréntesis así:
(a>b? b : a) = 3;
(a>b? b : a) = 5;

la salida es:
a=3, b=5
que es correcta.

¿Alguien sabe a que se debe esto?

Gracias por adelantado y un saludo.


Más información sobre la lista de distribución Cconclase