Diferencia entre revisiones de «Casting»

De Proyectos
Ir a la navegación Ir a la búsqueda
Sin resumen de edición
Línea 18: Línea 18:
= Casting de Punteros =
= Casting de Punteros =
*El casting de punteros se hace con los [[Punteros#Punteros Genéricos|punteros genéricos]]
*El casting de punteros se hace con los [[Punteros#Punteros Genéricos|punteros genéricos]]
*Su sintaxis es:
(<tipo> *)<variable puntero>
*Ejemplo:
<pre>
int a = 5;
float b = 3.2;
char c = 'a';
void *p;
p = &a;
printf("%d\n",*(int*)p);
p = &b;
printf("%f\n",*(float *)p);
p = &c;
printf("%c\n",*(char *)p);
</pre>
*Si no se hiciera el casting tendríamos un error en el compilador

Revisión del 11:34 21 mar 2013

Que es?

  • El casting es la conversión de una variable de un tipo a otro tipo
( <tipo_de_dato> ) <expresión>;


Casting de Variables

Ejemplo:

int a = 5;
int b = 3;
float r;

r = (float) a/b;
  • Si queremos hacer una division de dos numeros enteros pero queremos el resultado en numero real, hacemos un casting de la operacion. En el ejmplo anterior r = 1,66666. Si no ponemos el casting r = 1


Casting de Punteros

(<tipo> *)<variable puntero>
  • Ejemplo:
int a = 5;
float b = 3.2;
char c = 'a';

void *p;

p = &a;
printf("%d\n",*(int*)p);

p = &b;
printf("%f\n",*(float *)p);

p = &c;
printf("%c\n",*(char *)p);
  • Si no se hiciera el casting tendríamos un error en el compilador