[C con Clase] La prioridad del operador ?:

Jose Benavides jbenavides en globalclass.cl
Vie Mayo 28 18:39:46 CEST 2010


Giancarlo yo lo veo bien el primero, 
mis comentarios entre lineas:
------------ próxima parte ------------
A non-text attachment was scrubbed...
Name: Firma Jose Benavides.jpg
Type: image/jpeg
Size: 66130 bytes
Desc: no disponible
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20100528/867d8c94/attachment.jpg>
------------ próxima parte ------------


El 28-05-2010, a las 12:21, Giancarlo escribió:

> 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;
[JBG] despues de esta instruccion ya te cambio el valor de "a" y ahora vale 3
> a>b? b : a = 5;
[JBG] y aqui a efectivamente mayor que "b" y devuelve "b" que no ha sido cambiada como le paso a "a"
> 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.
> _______________________________________________
> Lista de correo Cconclase Cconclase en listas.conclase.net
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ



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