CONVERSION DE TIPOS PARA SEGMENTOS DE EXPRESIONES (CASTING)


En muchas expresiones que involucran diversas variables se recomienda no mezclar modos de variables (enteras con reales, etc.) con el fin de evitar posibles resultados erróneos. La acción que permite considerar momentáneamente una variable como si fuese de otro tipo se conoce como casting; cuando se le usa se convierte el resultado de un segmento de la expresión a otro tipo de valor (por ejemplo una variable entera se le considera como real). Cuando se requiere afectar el tipo de un segmento de la expresión, se le encierra entre paréntesis anteponiéndole también entre paréntesis el tipo de valor al que se le convierte momentáneamente. El ámbito de esta operación conocida como casting siempre está circunscrita a la expresión entre paréntesis o variable que sigue a continuación, antes del siguiente operando. considere los siguientes casos:


 
#include<stdio.h>

#include<conio.h>

main()

{

clrscr();

int a=1,b=2,c=3;

int r1,r2;

float d=4.5,e=5.5,f=6.5;

int *g; /* declaración de apuntador a variable entera */

float *h; /* declaración de apuntador a variable real */

float r3,r4;

r3=(float)c/(2.0+0.5);

/* la operación anterior considera como real a la variable entera c, de tal manera que el resultado de la división corresponda exactamente a:

3.0/(2.0+0.5) */

r1=((int)(d+e)%3;

/* la división entera se efectúa considerando la expresión real (d+e) como entera, de tal manera que lo que se obtendrá será el residuo de la división de 10 entre 3, dando como resultado 1(entero) */

g=(int*)&d;

/* se asegura que se almacena la dirección como entero de la variable real d ( consultar la parte sobre apuntadores) */

printf("\n\n Presiona una tecla y continua...");

getch();

}


 



Selecciona un tema