Hola gente como va? Bueno queria hacerles una consulta a ver si pueden ayudarme...mañana tengo un parcial de C++ de varios temas...pero lo que todavia no me quedo muy claro es lo de punteros. me mandaron un parcial tipo para practicar, el primer ejercicio (y mas importante) me salio perfecto. pero en la parte de punteros la verdad no entiendo como hacerlo. les dejo lo que dice para ver si me pueden dar una mano:
2)Lee atentamente el siguiente codigo y responde:
main()
{
char *nom="ME ENCANTAN LOS PUNTEROS";
int i=0;
//1. Que hace la siguiente instruccion?
do{
} while(*(nom+i++));
//2. Que imprime el siguiente bloque?
do{
printf("%c", *(nom+i));
i--;
}while(i>=0);
//3. Como modificarias el codigo para emitir todas las letras A?
//4.Y para contar y emitir la cantidad de letras R?
system("pause");
return 0; }
Bueno este es el ejercicio del parcial tipo...si me pueden ayudar con estos puntos se los agradeceria mucho, ya que mañana las 7 de la tarde tengo el parcial y ya veo que me toma algo asi, que es muy probable...y no voy a entenderlo.. Gracias!!
Cita de: fran6990 en 13 Junio 2012, 06:43 AM
//1. Que hace la siguiente instruccion?
do{
} while(*(nom+i++));
primero suma la variable i al puntero nom, luego es incrementada la i, luego se obtiene el caracter que esta apuntando nom y se verifica si es nulo, si lo es
entonces sale del bucle sino continua
Cita de: fran6990 en 13 Junio 2012, 06:43 AM
//2. Que imprime el siguiente bloque?
do{
printf("%c", *(nom+i));
i--;
}while(i>=0);
inprime el caracter apuntado por puntero que es incrementado antes por i, luego es la i es decrementada y luego se verifica si i es >= 0
cuando declarás una cadena de char como lo hicistes así:
char *nom="ME ENCANTAN LOS PUNTEROS";
tenés que hacerlo de esta forma, insertando el cero delimitador ("\0")
char *nom="ME ENCANTAN LOS PUNTEROS\0";
No es necesario. Toda cadena literal por ejemplo:
char *msg = "Hola";
Es en realidad un array anónimo (sin nombre) que se almacena en alguna dirección de memoria y consiste de los caracteres indicados mas el terminador de cadena '\0'.
Un saludo