Sie sind auf Seite 1von 2

Las estructuras son llamadas tambin muy a menudo registros, o en ingls records.

Tienen muchos
aspectos en comn con los registros usados en bases de datos. Y siguiendo la misma analoga, cada
objeto de una estructura se denomina a menudo campo, o field.
Sintaxis:
struct [<identificador>] {
[<tipo> <nombre_objeto>[,<nombre_objeto>,...]];
} [<objeto_estructura>[,<objeto_estructura>,...];

El identificador de la estructura es un nombre opcional para referirse a la estructura.


Los objetos de estructura son objetos declarados del tipo de la estructura, y su inclusin tambin es
opcional. Sin bien, an siendo ambos opcionales, al menos uno de estos elementos debe existir.
En el interior de una estructura, entre las llaves, se pueden definir todos los elementos que
consideremos necesarios, del mismo modo que se declaran los objetos.
Las estructuras pueden referenciarse completas, usando su nombre, como hacemos con los objetos
que ya conocemos, y tambin se puede acceder a los elementos definidos en el interior de la
estructura, usando el operador de seleccin (.), un punto.
Una vez definida una estructura, es decir, si hemos especificado un nombre para ella, se puede usar
igual que cualquier otro tipo de C++. Esto significa que se pueden declarar ms objetos del tipo de
estructura en cualquier parte del programa. Para ello usaremos la forma normal de declaracin de
objetos, es decir:
[struct] <identificador> <objeto_estructura>
[,<objeto_estructura>...];

En C++ la palabra struct es opcional en la declaracin de objetos, al contrario de lo que sucede en C,


en el que es obligatorio usarla.

Punteros
Los punteros permiten simular el paso por referencia, crear y manipular estructuras dinamicas de datos, tales
como listas enlazadas, pilas, colas y rboles. Generalmente las variables contienen valores especificos. Los
punteros son variables pero en vez de contener un valor especifico, contienen las direcciones de las variables a
las que apuntan. Para obtener o modificar el valor de la variable a la que apuntan se utiliza el operador de
indireccin. Los punteros, al ser variables deben ser declaradas como punteros antes de ser utilizadas.
int *ptrID, ID;
ID = 8;
ptrID = &ID; // puntero a ID
ptrID es un puntero a int, mientras que la variable ID es solo una variable del tipo int. Todo puntero debe ser
precedido por un asterisco (*) en la declaracin.

LUIS ENRIQUE ABELINO GARDUO

Se puede declarar ms de un puntero en la misma sentencia. En el ejemplo que sigue se ve la declaracin de


dos punteros a int.
int *ptrY, *ptrX;

Operadores
Existen dos operadores a tener en cuenta cuando trabajamos con punteros. El operador de direccin (&) que
devuelve la direccin de memoria de su operando y el operador de indireccin (*) que devuelve un alias para
el objeto al cual apunta el operando del puntero.
En el siguiente ejemplo vemos como se inicializa una variable X con el valor 15. Luego se crea un puntero a
int y por ltimo el puntero pasa a apuntar a la variable X. Esto es, ptrX es un puntero a X.
int X = 15;
int *ptrX;
ptrX = &X;

Graphics en C++
La librera winbgim.h a sido creada originalmente por Konstantin Knizhnik's winbgi shareware
y posteriormente modificada por Mark Richardson y Michael Main, esta
librera tiene como
objetivo emular la librera graphics.h de Borland C++ y fcilitar algunas funciones del Mouse.
La ventaja de esta librera es que nos permite crear aplicaciones grficas con compiladores GNU
tales como el ambiente de desarrollo Dev C++
de la misma manera como se crean en el
compilador comercial Borland C++.

LUIS ENRIQUE ABELINO GARDUO