Foros del Web » Programación para mayores de 30 ;) » C/C++ »

De que sirve (tipo *)variabledeotrotipo; ?

Estas en el tema de De que sirve (tipo *)variabledeotrotipo; ? en el foro de C/C++ en Foros del Web. Hola, es que lo que pasa es que mi profe dijo que si hacia: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código C++: Ver original int * pi , entero ...
  #1 (permalink)  
Antiguo 04/04/2013, 18:13
Avatar de capsulasinformaticas  
Fecha de Ingreso: febrero-2013
Mensajes: 7
Antigüedad: 11 años, 2 meses
Puntos: 0
Pregunta De que sirve (tipo *)variabledeotrotipo; ?

Hola, es que lo que pasa es que mi profe dijo que si hacia:

Código C++:
Ver original
  1. int *pi, entero;
  2.     float *pf, flotante;
  3.    
  4.     flotante = 4.5;
  5.     entero = 7;
  6.    
  7.     entero = 7;
  8.     pf = &flotante;
  9.     pi = &entero;
  10.    
  11.     pi = (int *)pf;

Supuestamente lo que apunta pi (*pi o la variable entero) deberia ser la parte entera de lo que apunta pf, es decir, 4, pero no me funciono, ¿asi que se equivoco mi profe y no se puede hacer?, ¿o me equivoque yo al escribirlo?.

PD: Se que la forma mas facil es:

Código C++:
Ver original
  1. int flotante = 4.5;
  2. int numero;
  3.  
  4. numero = (int)flotante;

Pero estoy intentando aprender todo sobre punteros, Saludos.
  #2 (permalink)  
Antiguo 04/04/2013, 20:10
 
Fecha de Ingreso: enero-2012
Ubicación: Buenos Aires
Mensajes: 745
Antigüedad: 12 años, 3 meses
Puntos: 35
Respuesta: De que sirve (tipo *)variabledeotrotipo; ?

Hola. Si lo que quieres hacer es que pi apunte al valor entero de la variable flotante, puedes hacer:

Código C:
Ver original
  1. *pi = (int)flotante;
  2. printf("%d", *pi);  /* Imprime 4 */

Si lo quieres obtener a traves del puntero pf, necesitarias de una variable auxiliar, si no me equivoco:

Código C:
Ver original
  1. int aux;
  2. aux = (int)*pf;
  3. *pi = aux;
  4. printf("%d", *pi);  /* Imprime 4 */

Espero que te sirva!


Etiquetas: funcion, int, tipo, variable
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:48.