Diferencia entre revisiones de «Casting»
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
- El casting de punteros se hace con los punteros genéricos
- Su sintaxis es:
(<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