SlideShare una empresa de Scribd logo
1 de 14
APUNTADORES
UTILIZADOS          EN
PARAMETROS         POR
REFERENCIA, CUANDO UNA
VARIABLE APUNTA A UNA
DIRECCION DE MEMORIA
DE OTRA VARIABLE
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

La actualidad más candente (19)

Practicas c++
Practicas c++Practicas c++
Practicas c++
 
Punteros 2012
Punteros 2012Punteros 2012
Punteros 2012
 
Strcspn
StrcspnStrcspn
Strcspn
 
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++
 
C++
C++C++
C++
 
Ventilador adaptativo
Ventilador adaptativoVentilador adaptativo
Ventilador adaptativo
 
ESTATUTO WHILE
ESTATUTO WHILEESTATUTO WHILE
ESTATUTO WHILE
 
Guia De Practica 3
Guia De Practica 3Guia De Practica 3
Guia De Practica 3
 
Triggers o disparadores
Triggers o disparadoresTriggers o disparadores
Triggers o disparadores
 
Triggers
TriggersTriggers
Triggers
 
Introduccion a C++
Introduccion a C++Introduccion a C++
Introduccion a C++
 
Instrucciones assembler
Instrucciones assemblerInstrucciones assembler
Instrucciones assembler
 
Execute immediate
Execute immediateExecute immediate
Execute immediate
 
PROBLEMAS DE PROGRAMACION 3
PROBLEMAS DE PROGRAMACION 3PROBLEMAS DE PROGRAMACION 3
PROBLEMAS DE PROGRAMACION 3
 
Disparadores
DisparadoresDisparadores
Disparadores
 
Lecture 37
Lecture 37Lecture 37
Lecture 37
 
Control lectura 02
Control lectura 02Control lectura 02
Control lectura 02
 
Ejemplos Importantisimo
Ejemplos  ImportantisimoEjemplos  Importantisimo
Ejemplos Importantisimo
 

Destacado

Resume ravi hotel (1)
Resume ravi hotel (1)Resume ravi hotel (1)
Resume ravi hotel (1)ravi parkash
 
GfM Research Series: Successful Marketing in a Digital World
GfM Research Series: Successful Marketing in a Digital WorldGfM Research Series: Successful Marketing in a Digital World
GfM Research Series: Successful Marketing in a Digital WorldChristoph Spengler
 
Museo Aeronautico Ppt1
Museo Aeronautico Ppt1Museo Aeronautico Ppt1
Museo Aeronautico Ppt1arq.poduje
 
Gpc 03prof sal anomalias congenitas
Gpc 03prof sal anomalias congenitasGpc 03prof sal anomalias congenitas
Gpc 03prof sal anomalias congenitasCarlos Mantilla
 
Sant vicent ferrer.
Sant vicent ferrer.Sant vicent ferrer.
Sant vicent ferrer.crisjuca
 
Ertzaintzaren XXVI. Promozioa
Ertzaintzaren XXVI. PromozioaErtzaintzaren XXVI. Promozioa
Ertzaintzaren XXVI. PromozioaIrekia - EJGV
 
Actividades de Coeducacion
Actividades de CoeducacionActividades de Coeducacion
Actividades de CoeducacionA. Casas
 
Cultural studies chapter 9
Cultural studies chapter 9Cultural studies chapter 9
Cultural studies chapter 9Channy Leang
 
Webinar: Empfehlungsstrategien zur Steigerung des Warenkorbwertes
Webinar: Empfehlungsstrategien zur Steigerung des WarenkorbwertesWebinar: Empfehlungsstrategien zur Steigerung des Warenkorbwertes
Webinar: Empfehlungsstrategien zur Steigerung des Warenkorbwertesepoq internet services GmbH
 
TRANSPORTATION & TRADE LOGISTICS
TRANSPORTATION & TRADE LOGISTICSTRANSPORTATION & TRADE LOGISTICS
TRANSPORTATION & TRADE LOGISTICSCláudio Carneiro
 
Working Session - Mobile Marketing - GROUPM
Working Session - Mobile Marketing - GROUPMWorking Session - Mobile Marketing - GROUPM
Working Session - Mobile Marketing - GROUPMPiN Digital Waves
 
Kendall Coffey - Resume of Kendall Coffey
Kendall Coffey -  Resume of Kendall CoffeyKendall Coffey -  Resume of Kendall Coffey
Kendall Coffey - Resume of Kendall Coffeysarahelder
 

Destacado (20)

Presentación boca&boca
Presentación boca&bocaPresentación boca&boca
Presentación boca&boca
 
Resume ravi hotel (1)
Resume ravi hotel (1)Resume ravi hotel (1)
Resume ravi hotel (1)
 
Taller Camaras Digitales
Taller Camaras DigitalesTaller Camaras Digitales
Taller Camaras Digitales
 
diario Día 3
diario Día 3diario Día 3
diario Día 3
 
GfM Research Series: Successful Marketing in a Digital World
GfM Research Series: Successful Marketing in a Digital WorldGfM Research Series: Successful Marketing in a Digital World
GfM Research Series: Successful Marketing in a Digital World
 
Museo Aeronautico Ppt1
Museo Aeronautico Ppt1Museo Aeronautico Ppt1
Museo Aeronautico Ppt1
 
10 Sucessful Email Promotions
10 Sucessful Email Promotions10 Sucessful Email Promotions
10 Sucessful Email Promotions
 
Gpc 03prof sal anomalias congenitas
Gpc 03prof sal anomalias congenitasGpc 03prof sal anomalias congenitas
Gpc 03prof sal anomalias congenitas
 
Sant vicent ferrer.
Sant vicent ferrer.Sant vicent ferrer.
Sant vicent ferrer.
 
Abbey house sztuka i luksus
Abbey house sztuka i luksusAbbey house sztuka i luksus
Abbey house sztuka i luksus
 
Ertzaintzaren XXVI. Promozioa
Ertzaintzaren XXVI. PromozioaErtzaintzaren XXVI. Promozioa
Ertzaintzaren XXVI. Promozioa
 
Actividades de Coeducacion
Actividades de CoeducacionActividades de Coeducacion
Actividades de Coeducacion
 
Cultural studies chapter 9
Cultural studies chapter 9Cultural studies chapter 9
Cultural studies chapter 9
 
Webinar: Empfehlungsstrategien zur Steigerung des Warenkorbwertes
Webinar: Empfehlungsstrategien zur Steigerung des WarenkorbwertesWebinar: Empfehlungsstrategien zur Steigerung des Warenkorbwertes
Webinar: Empfehlungsstrategien zur Steigerung des Warenkorbwertes
 
TRANSPORTATION & TRADE LOGISTICS
TRANSPORTATION & TRADE LOGISTICSTRANSPORTATION & TRADE LOGISTICS
TRANSPORTATION & TRADE LOGISTICS
 
Ascension parish bank owned homes
Ascension parish bank owned homesAscension parish bank owned homes
Ascension parish bank owned homes
 
Working Session - Mobile Marketing - GROUPM
Working Session - Mobile Marketing - GROUPMWorking Session - Mobile Marketing - GROUPM
Working Session - Mobile Marketing - GROUPM
 
ELOHIM INDUSTRIAL SALES INC
ELOHIM INDUSTRIAL SALES INCELOHIM INDUSTRIAL SALES INC
ELOHIM INDUSTRIAL SALES INC
 
Kendall Coffey - Resume of Kendall Coffey
Kendall Coffey -  Resume of Kendall CoffeyKendall Coffey -  Resume of Kendall Coffey
Kendall Coffey - Resume of Kendall Coffey
 
Erik homberger erikson
Erik homberger eriksonErik homberger erikson
Erik homberger erikson
 

Similar a Apuntes apuntadores 1 a

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
 
Apuntadores
ApuntadoresApuntadores
Apuntadoresluisabn
 
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
 
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
 
Computacion punteros
Computacion punterosComputacion punteros
Computacion punterosManuel
 
Apuntadores, cadenas y estructuras
Apuntadores, cadenas y estructurasApuntadores, cadenas y estructuras
Apuntadores, cadenas y estructurasXendor Resendiz
 
Lenguaje De ProgramacióN Basic
Lenguaje De ProgramacióN BasicLenguaje De ProgramacióN Basic
Lenguaje De ProgramacióN BasicRokr02
 

Similar a Apuntes apuntadores 1 a (20)

Apunfun1
Apunfun1Apunfun1
Apunfun1
 
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++
 
Codigos de programas
Codigos de programasCodigos de programas
Codigos de programas
 
Codigos de programas
Codigos de programasCodigos de programas
Codigos de programas
 
Codigos de programas
Codigos de programasCodigos de programas
Codigos de programas
 
Apuntadores
ApuntadoresApuntadores
Apuntadores
 
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
 
Arreglos1
Arreglos1Arreglos1
Arreglos1
 
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
 
Punteros yo
Punteros yoPunteros yo
Punteros yo
 
Computacion punteros
Computacion punterosComputacion punteros
Computacion punteros
 
Apuntadores, cadenas y estructuras
Apuntadores, cadenas y estructurasApuntadores, cadenas y estructuras
Apuntadores, cadenas y estructuras
 
nodo
nodonodo
nodo
 
Lenguaje De ProgramacióN Basic
Lenguaje De ProgramacióN BasicLenguaje De ProgramacióN Basic
Lenguaje De ProgramacióN Basic
 
7.arreglos y vectores en c++
7.arreglos y vectores en c++7.arreglos y vectores en c++
7.arreglos y vectores en c++
 
instrucciones
instruccionesinstrucciones
instrucciones
 

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
 

Apuntes apuntadores 1 a

  • 1. APUNTADORES UTILIZADOS EN PARAMETROS POR REFERENCIA, CUANDO UNA VARIABLE APUNTA A UNA DIRECCION DE MEMORIA DE OTRA VARIABLE
  • 2. 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.
  • 3. 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
  • 4. 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.
  • 5. 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.
  • 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 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 .
  • 7. 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 }
  • 8. 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; }
  • 9. 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 }
  • 10. #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; }
  • 11. 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 }
  • 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 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 }
  • 13. 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 }
  • 14. 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.