Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Cuando una variable se declara, se asocian tres atributos: nombre, tipo y dirección en
memoria. Al valor, o contenido de una variable se accede por medio de su nombre. A la
dirección de la variable se accede por medio del operador de dirección &.
Ejemplo
int x; 500 Dirección (Hexadecimal)
Nombre x 100
int Tipo
Si el valor de la variable se conoce se representa en el interior de la caja.
Ejemplo: Obtener el valor y la dirección de una variable.
#include <cstdlib>
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{ int x,*px;
x=100;
cout<<"Contenido de X= "<<x<<endl;
cout<<"Direccion de &x = "<<&x<<endl;
px=&x;
cout<<"Contenido de X= "<<*px<<endl;
cout<<"Direccion de px = "<<px<<endl;
cout<<"Direccion de px = "<<&px<<endl;
getche();
return 0;
}
Operadores
Declaracion de punteros
int identificador
float valido
char
El * tiene dos funcione, declarar variables puntero y acceder al interior de la celda.
Ejemplo
#include <stdio.h> Trazo
#include <iostream.h>
#include <conio.h> Dir varor
int main()
{ 100 1
int a, b, c, *p1, *p2;
&a a
p1 = &a; // Paso 1. La dirección de a
es asignada a p1 200 0
*p1 = 1; // Paso 2. p1 (a) es igual a 1.
Equivale a a = 1; &b b
p2 = &b; // Paso 3. La dirección de b es
asignada a p2 300 1
*p2 = 2; // Paso 4. p2 (b) es igual a 2.
&c c
Equivale a b = 2;
p1 = p2; // Paso 5. El valor del p1 = p2
300
*p1 = 0; // Paso 6. b = 0
400
p2 = &c; // Paso 7. La dirección de c es
asignada a p2 &p1 p1 *p1
*p2 = 3; // Paso 8. c = 3
cout<<a<<"\t"<<b<<"\t"<<c<<endl; //
Paso 9. ¿Qué se imprime? 300
103 500
P1=p2 &p2 p2 *p2
*p1 = 1; // Paso 10. c = 1
cout<<a<<"\t"<<b<<"\t"<<c<<endl; //
Paso 11. ¿Qué se imprime?
113
getche();
return 0;
}
Ejemplo con Funciones
#include <stdio.h>
#include <iostream> 100 7
#include <conio.h>
Using namespace std; &a a
void intercambio(int x,int y);
int main() 200 10
{
int a, b; &b b
a=7;
b=10; 300 10
cout<<" a= "<<a<<" b = "<<b<<endl;
intercambio(a,b);
&x x
cout<<" a= "<<a<<" b = "<<b<<endl;
getche();
400 7
return 0;
}
void intercambio(int x,int y) &y y
{int z;
z=x; 500 7
x=y;
y=z; &y z
}
Referencia
#include <stdio.h>
#include <iostream> 100 7
#include <conio.h>
Using namespace std; &a a
void intercambio(int &x,int &y);
int main() 200 10
{
int a, b; &b b
a=7;
b=10; 100 10
cout<<" a= "<<a<<" b = "<<b<<endl;
intercambio(a,b);
&x x
cout<<" a= "<<a<<" b = "<<b<<endl;
getche();
200 7
return 0;
}
void intercambio(int &x,int &y) &y y
{int z;
z=x; 500 7
x=y;
y=z; &z z
}
Puntero
#include <stdio.h>
#include <iostream> 100
#include <conio.h>
Using namespace std; &a a
void intercambio(int *x,int *y);
int main() 200
{
int a, b; &b b
a=7;
b=10; 300
cout<<" a= "<<a<<" b = "<<b<<endl;
intercambio(&a,&b); &x x *x
cout<<" a= "<<a<<" b = "<<b<<endl;
getche(); 400
return 0;
} &y y *y
void intercambio(int *x,int *y)
{int z; 500
z=*x;
*x=*y; &z z
*y=z;
}