10/11/2014, 02:34
|
| | Fecha de Ingreso: junio-2010 Ubicación: Madrid
Mensajes: 620
Antigüedad: 14 años, 6 meses Puntos: 73 | |
Respuesta: Diferencia entre conversión de tipo (cast) y sufijo en C? En ese tipo de operaciones, el compilador va a promocionar todos los términos al tipo superior y efectuará la operación con arreglo al tipo superior. Así, en
1 + 2.3
1 será entero, pero 2.3 es de tipo double, por tanto el 1 promociona a double y el resultado será 1.0 + 2.3 = 3.3 (double).
De todos modos, hay que tener cuidado, por ejemplo
double x;
x = 1/3;
se evaluará primero 1/3, que dará 0, dado que el 1 y el 3 los tomará como enteros y el resultado de esa división entera es 0. A continuación promociona este resultado a double, con lo que x valdrá 0.0; sin embargo, añadiendo un punto decimal, un sufijo o un casting a cualquiera de los términos del lado derecho, el resultado será correcto.
Saludos, |