Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Sesion18Punteros Cleaned
Sesion18Punteros Cleaned
N-1
N
Memoria del computador
Al declarar una variable el Sistema Operativo (S.O) reserva en la
memoria el espacio necesario para almacenar dicha variable.
AB002
Variable La segunda vez que se ejecuta el programa
AB003
AB004
AB005
Variable
AB006 La primera vez que se ejecuta el programa
AB007
N-1
N
Analogía de la memoria
Analogía de la memoria
Un teatro La memoria
• Una persona desea ingresar a • Una variable desea ingresar a la
un teatro. memoria del computador.
#include <iostream>
using namespace std;
int main()
{
int varA;
int varB;
varA = 90;
varB = 120;
cout<<"varA = " << varA << " y su direccion es: " << &varA << "\n";
cout<<"varB = " << varB << " y su direccion es: " << &varB << "\n";
return 0;
}
Ejemplo 2
Escribir un programa en C++ que permita declarar dos variables enteras,
asignarles un valor e imprimir sus direcciones de memoria. Luego, declarar
un puntero a una de ellas y manipular el dato a través del puntero.
int main()
{
int varA;
int varB;
varA = 90;
varB = 120;
cout<<"varA = " << varA << " y su direccion es: " << &varA << "\n";
cout<<"varB = " << varB << " y su direccion es: " << &varB << "\n";
int *pA = &varA; // declara la variable puntero pA y le asigna un valor
int *pB; // declara la variable puntero pB
pB = &varB; // le asigna un valor
*pB = 45; // modifica el valor apuntado por pB
cout<<"varA = " << *pA << " y su direccion es: " << pA << "\n";
cout<<"varB = " << *pB << " y su direccion es: " << pB << "\n";
return 0;
}
Parámetros de una
función
int main() a b
{ 20 30
int n1 = 20;
int n2 = 30; int DameSuma(int a, int b)
cout<<n1 << “ ” <<n2; { a = 15; b = 10;
int resultado= DameSuma(n1, n2); int suma = a + b;
return suma;
cout<<n1 << “ ” <<n2; }
cout<<“La suma es “ <<resultado; suma
return 0; 25
}
int main() a b
{
int n1 = 20;
int n2 = 30; int DameSuma(int &a, int
cout<<n1 << “ ” <<n2; &b)
int resultado = DameSuma(n1, n2); { a = 25; b = 20;
int suma = a + b;
cout<<n1 << “ ” <<n2; return suma;
cout<<“La suma es ”<<resultado; }
suma
return 0; 45
}
Parámetros por referencia puntero
NO se crean copias, la
función opera con p1
y con p2
p1 p2 resultado directamente:
20 30 13 mediante sus
referencias.
int main()
{ a b
int n1 = 20;
int n2 = 30; int DameSuma(int *a, int
int *p1, *p2; *b)
p1 = &n1; { *a = 5; *b = 8;
p2 = &n2; int suma = *a + *b;
int resultado = DameSuma(p1, p2); return suma;
}
cout<<n1 << “ ” <<n2; suma
cout<<“La suma es ”<<resultado; 13
return 0;
}