SlideShare una empresa de Scribd logo
1 de 13
PASO DE PARAMETRO POR
       REFERENCIA
O CUANDO UNA FUNCION DEBE MODIFICAR EL
  VALOR   DEL   PARAMETRO    PASADO     Y
  DEVOLVER ESTE VALOR MODIFICADO A LA
  FUNCION LLAMADORA, SE HA DE UTILIZAR EL
  METODO DE PASO DE PARAMETRO POR
  REFERENCIA.
O EN ESTE METODO EL COMPILADOR PASA LA
  DIRECCION DE MEMORIA DEL VALOR DEL
  PARAMETRO A LA FUNCION. CUANDO SE
  MODIFICA EL VALOR DEL PARAMETRO (LA
  VARIABLE LOCAL), ESTE VALOR QUEDA
  ALMACENADO EN LA MISMA DIRECCION DE
  MEMORIA, POR LO QUE AL RETORNAR A LA
  FUNCION LLAMADORA LA DIRECCION DE LA
  MEMORIA DONDE     SE   ALMACENO      EL
  PARAMETRO    CONTENDRA     EL    VALOR
  MODIFICADO.
O VER APUNTADORES.
APUNTADORES
O Definición: Un apuntador es una variable que
    contiene una dirección de memoria.
O   En C y C++ una variable precedida del operador &
    devuelve la dirección y el valor a la variable
    siempre y cuando esta sea declarada como
    variable apuntador.
O   Ejem.
O   Int x;
O   Int *apuntador, z;
O   Observe el ejemplo anterior y vera que la variable
    x es una variable declarada de tipo entero, la
    variable llamada apuntador es una variables de
    tipo apuntador, mas no así la variable z que es una
    variable de tipo entero
Apuntadores
O   De lo anterior tenemos lo siguiente.
O   Int x;
O   Int *apuntador;
O   X=7;
O   Apuntador=&x;
O   Esto queda de la siguiente manera, declaro una
    variable de tipo entero x, una variable llamada
    apuntador de tipo apuntador, después x toma el
    valor de 7 pero al momento de realizar la
    instrucción apuntador=&x; el valor y la dirección de
    x pasa a la variable apuntador, y se expresa como
    que la variable apuntador apunta a la variable x va
    y toma su dirección y su valor.
UTILIZACION DE PUNTEROS
   EN SENTENCIAS SENCILLAS
#include <iostream>
using namespace std;
main()
{
 system(“cls”);
 int a;
 int *apuntador;
 a=7;
 apuntador= &a;
 cout<<"la direccion de a es:n"<<&a<<endl;
 cout<<“la direccion de apuntador es:n"<<apuntador<<endl;
system(“pause”);
 return 0;
}
Así tenemos que imprime la misma dirección en a y en la variable apuntador.
O   #include <iostream>
O   using namespace std;
O    main()
O    {
O     system(“cls”);
O     int a;
O     int *apuntador;
O    cout<<“la direccion de apuntador es:n"<<apuntador<<endl;
O     a=7;
O     apuntador= &a;
O     cout<<"la direccion de a es:n"<<&a<<endl;
O     cout<<“la direccion de apuntador es:n"<<apuntador<<endl;
O    system(“pause”);
O     return 0;
O    }
O   Aquí vemos que la variable apuntador imprime su direccion, real y despues
    imprime la direccion de a y la direccion de apuntador cambia a la misma
    direccion de a ya que apuntador apunto a a y trajo su direccion .
O   #include <iostream>
O   using namespace std;
O    main()
O    {
O     system(“cls”);
O     int a;
O     int *apuntador;
O    cout<<“la direccion de apuntador es:n"<<apuntador<<endl;
O     a=7;
O     apuntador= &a;
O     cout<<"la direccion de a es:n"<<&a<<endl;
O     cout<<“la direccion de apuntador es:n"<<apuntador<<endl;
O   // a partir de las siguientes lineas se imprime el mismo valor de a y de apuntador
O   // note que para imprimir una variable de tipo apuntador esta va precedida del *
O   // tambien debe DE QUEDAR CLARO QUE UNA VARIABLE DE TIPO APUNTADOR POR SI SOLA
O   // NO IMPRIME EL VALOR DE ELLA, SOLO SU DIRECCION E IMPRIME EL VALOR CUANDO ES
O   //PRECEDIDA POR EL * PERO SOLO IMPRIME EL VALOR DE LA VARIABLE A LA CUAL APUNTO
O   cout<<“el valor de a es:n"<<a<<endl;
O   cout<<“el valor de apuntador es:n"<<*apuntador<<endl;
O    system(“pause”);
O     return 0;
O    }
UTILIZACION DE PUNTEROS CON
         FUNCIONES
#include <iostream>
using namespace std;
int cubo (int *);
 int main()
 {
  system(“cls”);
  int numero = 5;
  cout<<"el valor original de numero es:n"<<numero;
  cubo(&numero);
  cout<<"n";
  cout<<"el nuevo valor de numero es:n"<<numero;
  system(„pause`);
  return 0;
  }
  int cubo(int *apuntador)
  {
  return *apuntador=*apuntador * *apuntador * *apuntador;
  }
O   #include <iostream>
O   using namespace std;
O   int cubo (int *);
O    int main()
O    {
O     system("cls");
O     int numero = 5;
O     cout<<"el valor original de numero es:n"<<numero;
O     cubo(&numero);
O     cout<<"n";
O     system("pause");
O     return 0;
O     }
O     int cubo(int *apuntador)
O     {
O     *apuntador=*apuntador * *apuntador * *apuntador;
O     cout<<"el nuevo valor de numero es:n"<<*apuntador;
O     }
#include <iostream>
using namespace std;
int cubo (int *);
 int main()
 {
  system("cls");
   int numero = 5;
  int *apuntador;
  apuntador=&numero;
  cout<<"la direccion de numero es:n"<<&apuntador;
  cout<<"n el valor de numero es:n"<<numero;
  cout<<"el valor de numero es:n"<<*apuntador;
  cout<<"n";
  cubo(&numero);
  cout<<"el nuevo valor de numero es:n"<<numero;
  cout<<"nla direccion nueva de numero es:n"<<*apuntador;
  cout<<"la direccion de numero es:n"<<&apuntador;
  system("pause");
  return 0;

 }
 int cubo(int *apuntador)
 {
 return *apuntador=*apuntador * *apuntador * *apuntador;
 }
O   #include <iostream>
O   using namespace std;
O   int numero;
O   int *apuntador;
O   int cubo (int * );
O    int main()
O    {
O     system("cls");
O
O    numero=5;
O    apuntador=&numero;
O    cout<<"la direccion de numero es:n"<<&apuntador;
O    cout<<"n el valor de numero es:n"<<numero;
O    cout<<"el valor de numero es:n"<<*apuntador;
O    cout<<"n";
O    cubo(&numero);
O
O    system("pause");
O    return 0;

O    }
O    int cubo(int *apuntador )
O    {
O   *apuntador=*apuntador * *apuntador * *apuntador;
O    cout<<"el nuevo valor de numero es:n"<<numero;
O    cout<<"nla direccion nueva de numero es:n"<<*apuntador;
O    cout<<"la direccion de numero es:n"<<&apuntador;
O    }
O   # include "iostream"
O   using namespace std;
O   int a,b,c;
O   int suma(int *);
O   int *apuntador,*apuntador1,*e;
O   int main()
O   {
O
O   system("cls");
O    cout<<"dame a ";
O    cin>>a;
O    cout<<"dame b ";
O    cin>>b;
O    c=a+b;
O     suma(&c);
O     cout<<c;
O      cout<<"n";
O     cout<<*e;
O     cout<<"n";
O     cout<<&c;
O     cout<<"n";
O     cout<<e;
O     cout<<"n";
O     cout<<&e;
O     cout<<"n";
O    system("pause");
O   return 0;
O   }
O
O       int suma (int *)
O       {
O           apuntador=&a;
O           apuntador1 = &b;
O           e = &c;
O           return *e;
O
O
O   }
O   # include "iostream"
O   using namespace std;
O   int a,b,c;
O   int suma(int *);
O   int *apuntador,*apuntador1,*e;
O   int main()
O   {
O
O   system("cls");
O    cout<<"dame a ";
O    cin>>a;
O    cout<<"dame b ";
O    cin>>b;
O    c=a+b;
O     suma(&c);
O
O    system("pause");
O   return 0;
O   }
O
O       int suma (int *)
O       {
O           apuntador=&a;
O           apuntador1 = &b;
O           e = &c;
O           cout<<c;
O        cout<<"n";
O       cout<<*e;
O       cout<<"n";
O       cout<<&c;
O       cout<<"n";
O       cout<<e;
O       cout<<"n";
O       cout<<&e;
O       cout<<"n";
O
O
O   }
DIFERENCIA ENTRE LOS PARAMETROS
   POR VALOR Y POR REFERENCIA
O LOS    PARAMETROS      POR    VALOR
  (DECLARADOS SIN &) RECIBEN COPIAS
  DE LOS VALORES DE LOS ARGUMENTOS
  QUE SE PASAN Y
O LA ASIGNACION A PARAMETROS POR
  VALOR DE UNA FUNCION NUNCA
  CAMBIAN EL VALOR DEL ARGUMENTO
  ORIGINAL PASADO A LOS PARAMETROS.
O LOS PARAMETROS POR REFERENCIA (
  DECLARADOS CON &) RECIBEN LA
  DIRECCION DE LOS ARGUMENTOS
  PASADOS Y
O EN UNA FUNCION, LAS ASIGNACIONES A
  PARAMETROS      POR      REFERENCIA
  CAMBIAN LOS VALORES DE LOS
  ARGUMENTOS ORIGINALES.

Más contenido relacionado

La actualidad más candente

Practicas segundo parcial de programacion avanzada
Practicas segundo parcial de programacion avanzadaPracticas segundo parcial de programacion avanzada
Practicas segundo parcial de programacion avanzadaDariio Lopezz Young
 
Instrucciones(raptor, java, c#)
Instrucciones(raptor, java, c#)Instrucciones(raptor, java, c#)
Instrucciones(raptor, java, c#)ariannalizeeth
 
Suma y multiplicacion
Suma y multiplicacionSuma y multiplicacion
Suma y multiplicacionanggelosalesi
 
(Meta 2.3) conversion de grados centigrados a farenheit dev c++
(Meta 2.3) conversion de grados centigrados a farenheit dev c++ (Meta 2.3) conversion de grados centigrados a farenheit dev c++
(Meta 2.3) conversion de grados centigrados a farenheit dev c++ Eli Diaz
 
Deteccion de Ciclos en c
Deteccion de Ciclos en cDeteccion de Ciclos en c
Deteccion de Ciclos en cAbraham
 
ESTATUTO WHILE
ESTATUTO WHILEESTATUTO WHILE
ESTATUTO WHILEcharnisch
 
Control lectura 02
Control lectura 02Control lectura 02
Control lectura 02X - Men
 
Programación MySQL-Ejercicios
Programación MySQL-EjerciciosProgramación MySQL-Ejercicios
Programación MySQL-Ejerciciostestgrupocomex
 
PROBLEMAS DE POGRAMACION 1
PROBLEMAS DE POGRAMACION 1PROBLEMAS DE POGRAMACION 1
PROBLEMAS DE POGRAMACION 1Jordan Puente
 
Ejemplos Importantisimo
Ejemplos  ImportantisimoEjemplos  Importantisimo
Ejemplos Importantisimomartha leon
 

La actualidad más candente (17)

Practicas segundo parcial de programacion avanzada
Practicas segundo parcial de programacion avanzadaPracticas segundo parcial de programacion avanzada
Practicas segundo parcial de programacion avanzada
 
Instrucciones(raptor, java, c#)
Instrucciones(raptor, java, c#)Instrucciones(raptor, java, c#)
Instrucciones(raptor, java, c#)
 
Practicas c++
Practicas c++Practicas c++
Practicas c++
 
Strcspn
StrcspnStrcspn
Strcspn
 
C++
C++C++
C++
 
Suma y multiplicacion
Suma y multiplicacionSuma y multiplicacion
Suma y multiplicacion
 
(Meta 2.3) conversion de grados centigrados a farenheit dev c++
(Meta 2.3) conversion de grados centigrados a farenheit dev c++ (Meta 2.3) conversion de grados centigrados a farenheit dev c++
(Meta 2.3) conversion de grados centigrados a farenheit dev c++
 
Punteros 2012
Punteros 2012Punteros 2012
Punteros 2012
 
Ventilador adaptativo
Ventilador adaptativoVentilador adaptativo
Ventilador adaptativo
 
Deteccion de Ciclos en c
Deteccion de Ciclos en cDeteccion de Ciclos en c
Deteccion de Ciclos en c
 
Disparadores
DisparadoresDisparadores
Disparadores
 
ESTATUTO WHILE
ESTATUTO WHILEESTATUTO WHILE
ESTATUTO WHILE
 
algoritmos c++
algoritmos c++algoritmos c++
algoritmos c++
 
Control lectura 02
Control lectura 02Control lectura 02
Control lectura 02
 
Programación MySQL-Ejercicios
Programación MySQL-EjerciciosProgramación MySQL-Ejercicios
Programación MySQL-Ejercicios
 
PROBLEMAS DE POGRAMACION 1
PROBLEMAS DE POGRAMACION 1PROBLEMAS DE POGRAMACION 1
PROBLEMAS DE POGRAMACION 1
 
Ejemplos Importantisimo
Ejemplos  ImportantisimoEjemplos  Importantisimo
Ejemplos Importantisimo
 

Destacado (8)

Unidad 1 b
Unidad 1 bUnidad 1 b
Unidad 1 b
 
Unidad 1 c
Unidad 1 cUnidad 1 c
Unidad 1 c
 
Unidad 1 a
Unidad 1 aUnidad 1 a
Unidad 1 a
 
001 yog-vashishta
001 yog-vashishta001 yog-vashishta
001 yog-vashishta
 
002 yog-vashishta
002 yog-vashishta002 yog-vashishta
002 yog-vashishta
 
Arreglos
ArreglosArreglos
Arreglos
 
Selenium Testing
Selenium Testing Selenium Testing
Selenium Testing
 
Law of insurance
Law of insuranceLaw of insurance
Law of insurance
 

Similar a Paso de parámetros por referencia vs valores en C

Clase 11- fundamentos de la programacion
Clase 11- fundamentos de la programacionClase 11- fundamentos de la programacion
Clase 11- fundamentos de la programaciondiego MC
 
PUNTEROS (APUNTADORES) EN C++
PUNTEROS (APUNTADORES) EN C++PUNTEROS (APUNTADORES) EN C++
PUNTEROS (APUNTADORES) EN C++die_dex
 
Comandos de Raptor,C# y Java
Comandos de Raptor,C# y JavaComandos de Raptor,C# y Java
Comandos de Raptor,C# y JavaAna Ruth G H
 
Que es un algoritmo de jorge magaña
Que es un algoritmo de jorge magañaQue es un algoritmo de jorge magaña
Que es un algoritmo de jorge magañaJorge Ricardo
 
Que es un algoritmo de jorge magaña
Que es un algoritmo de jorge magañaQue es un algoritmo de jorge magaña
Que es un algoritmo de jorge magañaJorge Ricardo
 
PresentacióN 4
PresentacióN 4PresentacióN 4
PresentacióN 4pokerpc
 
Programación en c (iii parte)
Programación en c (iii parte)Programación en c (iii parte)
Programación en c (iii parte)MarielaCuriel
 
Implementacion de punteros
Implementacion de punterosImplementacion de punteros
Implementacion de punterosKareliaRivas
 
Apuntadores
ApuntadoresApuntadores
Apuntadoresluisabn
 
Guia De Practica 3
Guia De Practica 3Guia De Practica 3
Guia De Practica 3louis
 
Computacion punteros
Computacion punterosComputacion punteros
Computacion punterosManuel
 

Similar a Paso de parámetros por referencia vs valores en C (20)

Apunfun1
Apunfun1Apunfun1
Apunfun1
 
Codigos de programas
Codigos de programasCodigos de programas
Codigos de programas
 
Codigos de programas
Codigos de programasCodigos de programas
Codigos de programas
 
Clase 11- fundamentos de la programacion
Clase 11- fundamentos de la programacionClase 11- fundamentos de la programacion
Clase 11- fundamentos de la programacion
 
PUNTEROS (APUNTADORES) EN C++
PUNTEROS (APUNTADORES) EN C++PUNTEROS (APUNTADORES) EN C++
PUNTEROS (APUNTADORES) EN C++
 
Comandos de Raptor,C# y Java
Comandos de Raptor,C# y JavaComandos de Raptor,C# y Java
Comandos de Raptor,C# y Java
 
Que es un algoritmo de jorge magaña
Que es un algoritmo de jorge magañaQue es un algoritmo de jorge magaña
Que es un algoritmo de jorge magaña
 
Que es un algoritmo de jorge magaña
Que es un algoritmo de jorge magañaQue es un algoritmo de jorge magaña
Que es un algoritmo de jorge magaña
 
PresentacióN 4
PresentacióN 4PresentacióN 4
PresentacióN 4
 
Programación en c (iii parte)
Programación en c (iii parte)Programación en c (iii parte)
Programación en c (iii parte)
 
Implementacion de punteros
Implementacion de punterosImplementacion de punteros
Implementacion de punteros
 
Apuntadores
ApuntadoresApuntadores
Apuntadores
 
Guia De Practica 3
Guia De Practica 3Guia De Practica 3
Guia De Practica 3
 
Practica de programacion 21 28
Practica de programacion 21 28Practica de programacion 21 28
Practica de programacion 21 28
 
Computacion punteros
Computacion punterosComputacion punteros
Computacion punteros
 
Arreglos2
Arreglos2Arreglos2
Arreglos2
 
vocabulario de programacion
vocabulario de programacion vocabulario de programacion
vocabulario de programacion
 
instrucciones
instruccionesinstrucciones
instrucciones
 
Problema c++
Problema c++Problema c++
Problema c++
 
Punteros yo
Punteros yoPunteros yo
Punteros yo
 

Más de pabesacv

APUNTES DE ARQUITECTURA DE COMPUTADORAS
APUNTES DE ARQUITECTURA DE COMPUTADORASAPUNTES DE ARQUITECTURA DE COMPUTADORAS
APUNTES DE ARQUITECTURA DE COMPUTADORASpabesacv
 
Apuntes empiezo (c)
Apuntes empiezo (c)Apuntes empiezo (c)
Apuntes empiezo (c)pabesacv
 
Apuntes empiezo (b)
Apuntes empiezo (b)Apuntes empiezo (b)
Apuntes empiezo (b)pabesacv
 
Apuntes empiezo (a)
Apuntes empiezo (a)Apuntes empiezo (a)
Apuntes empiezo (a)pabesacv
 
Apuntes estructuras 1
Apuntes estructuras 1Apuntes estructuras 1
Apuntes estructuras 1pabesacv
 
Apuntes de estructuras nuevo
Apuntes de estructuras nuevoApuntes de estructuras nuevo
Apuntes de estructuras nuevopabesacv
 
Unida ii 9a
Unida ii 9aUnida ii 9a
Unida ii 9apabesacv
 
Unida ii 8a
Unida ii 8aUnida ii 8a
Unida ii 8apabesacv
 
Unida ii 8a
Unida ii 8aUnida ii 8a
Unida ii 8apabesacv
 
Unida ii 7a
Unida ii 7aUnida ii 7a
Unida ii 7apabesacv
 
Unida ii 6a
Unida ii 6aUnida ii 6a
Unida ii 6apabesacv
 
Unida ii 5a
Unida ii 5aUnida ii 5a
Unida ii 5apabesacv
 
Unida ii 4a
Unida ii 4aUnida ii 4a
Unida ii 4apabesacv
 
Post y codigos de error
Post y codigos de errorPost y codigos de error
Post y codigos de errorpabesacv
 
Unida ii 3a
Unida ii 3aUnida ii 3a
Unida ii 3apabesacv
 
Unida ii 2a
Unida ii 2aUnida ii 2a
Unida ii 2apabesacv
 

Más de pabesacv (20)

APUNTES DE ARQUITECTURA DE COMPUTADORAS
APUNTES DE ARQUITECTURA DE COMPUTADORASAPUNTES DE ARQUITECTURA DE COMPUTADORAS
APUNTES DE ARQUITECTURA DE COMPUTADORAS
 
Apuntes empiezo (c)
Apuntes empiezo (c)Apuntes empiezo (c)
Apuntes empiezo (c)
 
Apuntes empiezo (b)
Apuntes empiezo (b)Apuntes empiezo (b)
Apuntes empiezo (b)
 
Apuntes empiezo (a)
Apuntes empiezo (a)Apuntes empiezo (a)
Apuntes empiezo (a)
 
Apuntes estructuras 1
Apuntes estructuras 1Apuntes estructuras 1
Apuntes estructuras 1
 
Apuntes de estructuras nuevo
Apuntes de estructuras nuevoApuntes de estructuras nuevo
Apuntes de estructuras nuevo
 
Unida ii 9a
Unida ii 9aUnida ii 9a
Unida ii 9a
 
Unida ii 8a
Unida ii 8aUnida ii 8a
Unida ii 8a
 
Unida ii 8a
Unida ii 8aUnida ii 8a
Unida ii 8a
 
Unida ii 7a
Unida ii 7aUnida ii 7a
Unida ii 7a
 
2 unida 4
2 unida 42 unida 4
2 unida 4
 
2 unida 3
2 unida 32 unida 3
2 unida 3
 
2 unida 2
2 unida 22 unida 2
2 unida 2
 
2 unida 1
2 unida 12 unida 1
2 unida 1
 
Unida ii 6a
Unida ii 6aUnida ii 6a
Unida ii 6a
 
Unida ii 5a
Unida ii 5aUnida ii 5a
Unida ii 5a
 
Unida ii 4a
Unida ii 4aUnida ii 4a
Unida ii 4a
 
Post y codigos de error
Post y codigos de errorPost y codigos de error
Post y codigos de error
 
Unida ii 3a
Unida ii 3aUnida ii 3a
Unida ii 3a
 
Unida ii 2a
Unida ii 2aUnida ii 2a
Unida ii 2a
 

Paso de parámetros por referencia vs valores en C

  • 1. PASO DE PARAMETRO POR REFERENCIA O CUANDO UNA FUNCION DEBE MODIFICAR EL VALOR DEL PARAMETRO PASADO Y DEVOLVER ESTE VALOR MODIFICADO A LA FUNCION LLAMADORA, SE HA DE UTILIZAR EL METODO DE PASO DE PARAMETRO POR REFERENCIA. O EN ESTE METODO EL COMPILADOR PASA LA DIRECCION DE MEMORIA DEL VALOR DEL PARAMETRO A LA FUNCION. CUANDO SE MODIFICA EL VALOR DEL PARAMETRO (LA VARIABLE LOCAL), ESTE VALOR QUEDA ALMACENADO EN LA MISMA DIRECCION DE MEMORIA, POR LO QUE AL RETORNAR A LA FUNCION LLAMADORA LA DIRECCION DE LA MEMORIA DONDE SE ALMACENO EL PARAMETRO CONTENDRA EL VALOR MODIFICADO. O VER APUNTADORES.
  • 2. APUNTADORES O Definición: Un apuntador es una variable que contiene una dirección de memoria. O En C y C++ una variable precedida del operador & devuelve la dirección y el valor a la variable siempre y cuando esta sea declarada como variable apuntador. O Ejem. O Int x; O Int *apuntador, z; O Observe el ejemplo anterior y vera que la variable x es una variable declarada de tipo entero, la variable llamada apuntador es una variables de tipo apuntador, mas no así la variable z que es una variable de tipo entero
  • 3. Apuntadores O De lo anterior tenemos lo siguiente. O Int x; O Int *apuntador; O X=7; O Apuntador=&x; O Esto queda de la siguiente manera, declaro una variable de tipo entero x, una variable llamada apuntador de tipo apuntador, después x toma el valor de 7 pero al momento de realizar la instrucción apuntador=&x; el valor y la dirección de x pasa a la variable apuntador, y se expresa como que la variable apuntador apunta a la variable x va y toma su dirección y su valor.
  • 4. UTILIZACION DE PUNTEROS EN SENTENCIAS SENCILLAS #include <iostream> using namespace std; main() { system(“cls”); int a; int *apuntador; a=7; apuntador= &a; cout<<"la direccion de a es:n"<<&a<<endl; cout<<“la direccion de apuntador es:n"<<apuntador<<endl; system(“pause”); return 0; } Así tenemos que imprime la misma dirección en a y en la variable apuntador.
  • 5. O #include <iostream> O using namespace std; O main() O { O system(“cls”); O int a; O int *apuntador; O cout<<“la direccion de apuntador es:n"<<apuntador<<endl; O a=7; O apuntador= &a; O cout<<"la direccion de a es:n"<<&a<<endl; O cout<<“la direccion de apuntador es:n"<<apuntador<<endl; O system(“pause”); O return 0; O } O Aquí vemos que la variable apuntador imprime su direccion, real y despues imprime la direccion de a y la direccion de apuntador cambia a la misma direccion de a ya que apuntador apunto a a y trajo su direccion .
  • 6. O #include <iostream> O using namespace std; O main() O { O system(“cls”); O int a; O int *apuntador; O cout<<“la direccion de apuntador es:n"<<apuntador<<endl; O a=7; O apuntador= &a; O cout<<"la direccion de a es:n"<<&a<<endl; O cout<<“la direccion de apuntador es:n"<<apuntador<<endl; O // a partir de las siguientes lineas se imprime el mismo valor de a y de apuntador O // note que para imprimir una variable de tipo apuntador esta va precedida del * O // tambien debe DE QUEDAR CLARO QUE UNA VARIABLE DE TIPO APUNTADOR POR SI SOLA O // NO IMPRIME EL VALOR DE ELLA, SOLO SU DIRECCION E IMPRIME EL VALOR CUANDO ES O //PRECEDIDA POR EL * PERO SOLO IMPRIME EL VALOR DE LA VARIABLE A LA CUAL APUNTO O cout<<“el valor de a es:n"<<a<<endl; O cout<<“el valor de apuntador es:n"<<*apuntador<<endl; O system(“pause”); O return 0; O }
  • 7. UTILIZACION DE PUNTEROS CON FUNCIONES #include <iostream> using namespace std; int cubo (int *); int main() { system(“cls”); int numero = 5; cout<<"el valor original de numero es:n"<<numero; cubo(&numero); cout<<"n"; cout<<"el nuevo valor de numero es:n"<<numero; system(„pause`); return 0; } int cubo(int *apuntador) { return *apuntador=*apuntador * *apuntador * *apuntador; }
  • 8. O #include <iostream> O using namespace std; O int cubo (int *); O int main() O { O system("cls"); O int numero = 5; O cout<<"el valor original de numero es:n"<<numero; O cubo(&numero); O cout<<"n"; O system("pause"); O return 0; O } O int cubo(int *apuntador) O { O *apuntador=*apuntador * *apuntador * *apuntador; O cout<<"el nuevo valor de numero es:n"<<*apuntador; O }
  • 9. #include <iostream> using namespace std; int cubo (int *); int main() { system("cls"); int numero = 5; int *apuntador; apuntador=&numero; cout<<"la direccion de numero es:n"<<&apuntador; cout<<"n el valor de numero es:n"<<numero; cout<<"el valor de numero es:n"<<*apuntador; cout<<"n"; cubo(&numero); cout<<"el nuevo valor de numero es:n"<<numero; cout<<"nla direccion nueva de numero es:n"<<*apuntador; cout<<"la direccion de numero es:n"<<&apuntador; system("pause"); return 0; } int cubo(int *apuntador) { return *apuntador=*apuntador * *apuntador * *apuntador; }
  • 10. O #include <iostream> O using namespace std; O int numero; O int *apuntador; O int cubo (int * ); O int main() O { O system("cls"); O O numero=5; O apuntador=&numero; O cout<<"la direccion de numero es:n"<<&apuntador; O cout<<"n el valor de numero es:n"<<numero; O cout<<"el valor de numero es:n"<<*apuntador; O cout<<"n"; O cubo(&numero); O O system("pause"); O return 0; O } O int cubo(int *apuntador ) O { O *apuntador=*apuntador * *apuntador * *apuntador; O cout<<"el nuevo valor de numero es:n"<<numero; O cout<<"nla direccion nueva de numero es:n"<<*apuntador; O cout<<"la direccion de numero es:n"<<&apuntador; O }
  • 11. O # include "iostream" O using namespace std; O int a,b,c; O int suma(int *); O int *apuntador,*apuntador1,*e; O int main() O { O O system("cls"); O cout<<"dame a "; O cin>>a; O cout<<"dame b "; O cin>>b; O c=a+b; O suma(&c); O cout<<c; O cout<<"n"; O cout<<*e; O cout<<"n"; O cout<<&c; O cout<<"n"; O cout<<e; O cout<<"n"; O cout<<&e; O cout<<"n"; O system("pause"); O return 0; O } O O int suma (int *) O { O apuntador=&a; O apuntador1 = &b; O e = &c; O return *e; O O O }
  • 12. O # include "iostream" O using namespace std; O int a,b,c; O int suma(int *); O int *apuntador,*apuntador1,*e; O int main() O { O O system("cls"); O cout<<"dame a "; O cin>>a; O cout<<"dame b "; O cin>>b; O c=a+b; O suma(&c); O O system("pause"); O return 0; O } O O int suma (int *) O { O apuntador=&a; O apuntador1 = &b; O e = &c; O cout<<c; O cout<<"n"; O cout<<*e; O cout<<"n"; O cout<<&c; O cout<<"n"; O cout<<e; O cout<<"n"; O cout<<&e; O cout<<"n"; O O O }
  • 13. DIFERENCIA ENTRE LOS PARAMETROS POR VALOR Y POR REFERENCIA O LOS PARAMETROS POR VALOR (DECLARADOS SIN &) RECIBEN COPIAS DE LOS VALORES DE LOS ARGUMENTOS QUE SE PASAN Y O LA ASIGNACION A PARAMETROS POR VALOR DE UNA FUNCION NUNCA CAMBIAN EL VALOR DEL ARGUMENTO ORIGINAL PASADO A LOS PARAMETROS. O LOS PARAMETROS POR REFERENCIA ( DECLARADOS CON &) RECIBEN LA DIRECCION DE LOS ARGUMENTOS PASADOS Y O EN UNA FUNCION, LAS ASIGNACIONES A PARAMETROS POR REFERENCIA CAMBIAN LOS VALORES DE LOS ARGUMENTOS ORIGINALES.