/
Inicio :: Foros

 F.A.Q.F.A.Q.                  Conéctese para revisar sus mensajesConéctese para revisar sus mensajes   

Variable puntero

 
      Índice del Foro elrincondelc.com -> C/C++ en General
Ver tema anterior :: Ver siguiente tema  
AutorMensaje
xtremecopy



Registrado: 05 Oct 2007
Mensajes: 28

MensajePublicado: 20/11/2007 1:32 am
Título: Variable puntero

Código:
#include <stdio.h>
#include <stdlib.h>  main()
{int d,e,f,g; char *a[]={"Lunes","Martes","Miercoles","Jueves","Viernes"}; d=*(*a+1);
e=*a[0];
f=**(a+2);
g=++a[2][3];
printf("%c %c %c %c",d,e,f,g);
getchar(); system("PAUSE");
return EXIT_SUCCESS;       
}


Que valores toman las variables d,e,f,g ? eso son punteros , no?
Volver arriba
mamntc02



Registrado: 30 Abr 2007
Mensajes: 293

MensajePublicado: 20/11/2007 2:50 am
Título:

Hola,

Bueno, no hay nada más simple q ejecutarlo para comprobar qué da, no?
De todas formas, ni d, e, f ó g son punteros. Más q nada pq estan decladados como enteros, y no como punteros. Por ejemplo:
  • d = * (*a +1)
    *a apunta a la 'L' de lunes, al sumarle 1, apunta a la 'u', y al hacer *(*a + 1) recuperamos el valor 'u' en d ==> d = 'u'
  • g = ++a[2][3]
    Primero tomamos a[2] q apunta a la 'M' de Miercoles. a[2][3] es el carácter 'r' de Miércoles. Al hacer ++a[2][3] mediante el operador de pre-incremento, augmenta el valor de a[2][3] a 's'. Por tanto en lugar de miércoles tendremos Miescoles, y luego asignamos este valor a g ==> g = 's'
  • ... y así los demás

Saludos.... espero no haberme equivocado, q no lo he ejecutado Wink
Volver arriba
mamntc02



Registrado: 30 Abr 2007
Mensajes: 293

MensajePublicado: 20/11/2007 3:01 am
Título:

Al final lo he ejecutado y me he equivocado Rolling Eyes

La operación q calcula g da un error de ejecución. La razón es usar el operador incremento(++) a valores constantes. Y los valores q estan en a son constantes por ser literales, por lo q no se pueden cambiar.
Funcionaría y también daría 's', si:
Código:
g = a[2][3] + 1;
Ya q esto no modificaría el valor de *a[].

Saludos.
Volver arriba
xtremecopy



Registrado: 05 Oct 2007
Mensajes: 28

MensajePublicado: 20/11/2007 10:04 am
Título:

Muchas gracias , claro lo que sucede es que lo compilaba y no me daba ningun resultado Mad ..

quedaba la pantalla en negra

ahora con la modificacion de "g"

si ..

me da lo siguiente..

u L M s

entonces , los valores serian :

d=u
e=L
f=M
g=s

estoy en lo correcto?

saludossss y MUCHISIMAS GRACIAS
Volver arriba
      Índice del Foro elrincondelc.com -> C/C++ en General
Página 1 de 1Todas las horas están en GMT - 8 Horas

 
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas

(c) ElRincondelC.com

Un proyecto de UrlanHeat.com