elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Apuntadores con c++ Ayuda!!!
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Apuntadores con c++ Ayuda!!!  (Leído 3,065 veces)
bamdrums

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Apuntadores con c++ Ayuda!!!
« en: 15 Enero 2015, 02:12 am »

hola que tal quisiera que alguien me pudiera explicar un programa ya que en verdad que no entiendo el funcionamiento del programa , encontré la solución un amigo me ayudo pero aunque me explico aun tengo dudas espero me puedan ayudar .
El programa tenía que tener 2 valores en dos variables y con apuntadores se tenía que invertir el valor de estos les dejo el código :

#include <iostream>


using namespace std;

int main (){
   
   int x=3,y=2,*p1=NULL,*p2=NULL;
   
   cout << "El valor de x es: "<< x << "\n";
   cout << "El valor de y es: "<< y << "\n\n\n";
   
   
   p1=&y;
        p2=&x;
   *p1 += *p2;
        *p2 = *p1-*p2;
        *p1 -= *p2;
   

   cout << "El valor de x es: "<< x << "\n";
   cout << "El valor de y es "<< y << "\n\n\n";
   
   return 0;
   
   
}


Al ejecutar el programa si invierte los valores , lo que no entiendo es el algoritmo que hace esto , siendo está la parte del código:

 
        *p1 += *p2;
        *p2 = *p1-*p2;
        *p1 -= *p2;

espero que me puedan explicar :C , saludos


« Última modificación: 15 Enero 2015, 02:15 am por bamdrums » En línea

MCKSys Argentina
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.524


Diviértete crackeando, que para eso estamos!


Ver Perfil
Re: Apuntadores con c++ Ayuda!!!
« Respuesta #1 en: 15 Enero 2015, 04:29 am »

Código
  1. int x=3,y=2;
  2. p1=&y;
  3. p2=&x;
  4. *p1 += *p2;
  5. *p2 = *p1-*p2;
  6. *p1 -= *p2;
  7.  

El "apuntador" o puntero (o, mejor aún, pointer) p1 contiene la dirección de memoria donde se encuentra en valor de y. Asimismo, p2 contiene la dirección de memoria donde se encuentra en valor de x.

Ahora:

Código
  1. *p1 += *p2;

Al valor al que apunta el puntero p1 (osea, y ó el valor 2), se le suma el valor al que apunta el puntero p2 (osea, x ó el valor 3).
En otras palabras:

Código
  1. y += x; //y ahora vale 5

Luego:

Código
  1. *p2 = *p1-*p2;

Al valor al que apunta el puntero p2 (osea, x ó el valor 3), se le asigna el valor al que apunta el puntero p1 (osea, 5) menos el valor al que apunta el puntero p2 (osea, 3).
En otras palabras:

Código
  1. x = y - x; //x ahora vale 2

Por último:

Código
  1. *p1 -= *p2;

Al valor al que apunta el puntero p1 (osea, 5), se le resta el valor al que apunta el puntero p2 (osea, 2).
En otras palabras:

Código
  1. y = y - x; //y ahora vale 3

De esta forma, los valores se invierten usando punteros...  :P

Saludos!

PD: Cuando coloques código, asegúrate de usar etiquetas Geshi.


En línea

MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."

bamdrums

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: Apuntadores con c++ Ayuda!!!
« Respuesta #2 en: 18 Enero 2015, 06:25 am »

muchas gracias me ha quedado muy claro :), disculpa soy nuevo en el foro no se como ingresar etiquetas geshi . ¿En dónde puedo encontrar la forma de hacerlo?
En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Apuntadores con c++ Ayuda!!!
« Respuesta #3 en: 18 Enero 2015, 06:49 am »

aqui


... seleccionar tu codigo, haces click ahí y escoges tu lenguaje... (o las pones y pegas tu codigo adentro, como más gustes)

usa el botón modificar y aplícalas en tu post inicial ;)
En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
bamdrums

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: Apuntadores con c++ Ayuda!!!
« Respuesta #4 en: 18 Enero 2015, 08:24 am »

Muchas gracias lo he logrado en otro tema :) , perdona mi torpeza pero soy malo con esto de los foros jeje en dónde está el botón modificar :S  ?
En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Apuntadores con c++ Ayuda!!!
« Respuesta #5 en: 18 Enero 2015, 08:25 am »

justo arriba a la derecha de cada post

es el boton
En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayudenme con apuntadores sii?
Programación C/C++
thapitufa 1 2,001 Último mensaje 2 Diciembre 2012, 06:42 am
por x64core
ayuda con manejo de cadenas y apuntadores
Programación C/C++
rod00x3 5 2,804 Último mensaje 7 Enero 2013, 19:24 pm
por rod00x3
Problema con apuntadores!!!!!!
Programación C/C++
7hongo7 7 4,288 Último mensaje 5 Julio 2013, 10:16 am
por kmilinh0
[C] Apuntadores a estructuras « 1 2 »
Programación C/C++
edr89 10 5,357 Último mensaje 8 Octubre 2013, 05:48 am
por edr89
Struct y apuntadores
Programación C/C++
Cas980 1 1,709 Último mensaje 3 Abril 2014, 05:22 am
por rir3760
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines