Ciencia de la Computacin II
Tema:
Introduccin a los punteros
Punteros y arreglos
Ejemplos:
int f=*(x+1); // asigna x [1 a f
*(x+1)=*(x+2); // es decir x[ 1=x[ 2
(*(x+1))++; // incrementa en una
unidad al contenido de x[1
Para muchas cosas los punteros y arreglos
son intercambiables. Sin embargo, no son
equivalentes. Considere el copiar los
elementos de un arreglo en otro.
Punteros y arreglos
int x[ 6={1,2,3,4,5,5};
int y[ 6;
for (int i =0; i<6; i++)
y[ i=x[ i; // esto es OK
enum pintas s;
int juego;
};
Tipos de datos definidos por el
usuario.
// Definicin de una variable del tipo cartas
*p=6;
delete p; // Devuelve la memoria apuntada por p al heap del sistema.
p=new int; // p ahora apunta a una nueva localidad de memoria.
Asignacin dinmica de
memoria.
Se debe notar que estos operadores son
sobrecargados ya que estos pueden ser
utilizados con cualquier tipo apropiado ya sea
estndar o definido por el usuario. Ejemplo
double *x=new double;
cartas *carta1=new cartas;
Notas:
#include<iostream.h>
struct estudiante{
char Apellido[30;
int edad;
};
struct profesor{
char Apellido[30;
char iniciales[4;
};
Ejemplo de sobrecarga y de
utilizacin de estucturas
void asignacion(estudiante *est){
cin >> estApellido;
cin >> estedad;
}
#include<iostream.h>
struct estudiante{
char Apellido[30;
int edad;
};
struct profesor{
char Apellido[30;
char iniciales[4;
};
Ejemplo de sobrecarga y de
utilizacin de estucturas
istream& operator >>(istream &entrada estudiante *est){
entrada >> estApellido;
entrada >> estedad;
return entrada;
}
int main() {
estudiante *estud=new estudiante; // Asignacin dinmica de memoria
profesor *profe=new profesor; // para estud y profe
cin >> estud;
cin >> profe;
cout << estud;
cout << profe;
delete estud; // Libera memoria.
delete profe;
}