You are on page 1of 3

Periodo escolar: 2012-2013

Programación 1
M.C. Guillermina Vivar Estudillo.
APUNTADORES
Los punteros o apuntadores en C++ proporcionan la mayor parte de la potencia y
son la principal diferencia con otros lenguajes de programación.
Ejemplo: Se le llama puntero a la flecha del mouse y es usada para señalar los
objetos, enlaces, iconos, etc., dentro del la pantalla de la computadora. Un
apuntador o puntero sirve para apuntar, señalar a los objetos a los cuales nos
estamos refiriendo.
Los apuntadores en C++ sirven para señalar objetos así como para manipularlos.
Un puntero es un tipo especial de variable que contiene, una dirección de
memoria. A partir de esa dirección de memoria puede haber cualquier tipo de
objeto: un char, un int, un float, un array, una estructura, una función u otro
puntero. Seremos nosotros los responsables de decidir ese contenido.
Podemos decir, que un apuntador contiene una dirección de memoria de una
variable, que a su vez, contiene un valor específico.
DECLARACION DE APUNTADORES
Los apuntadores se declaran como las variables, pero en este caso antes del
identificador (nombre de la variable) el operador de indirección (*), que se leera
como “apuntador a ” o “apunta a ”.
Sintaxis:
Tipo_de_dato * identificador;
Ejemplos:
int *apuntador, *xPrt;
float *prt;

// se recomienda nombrePtr, para identificar que es un apuntador

Los apuntadores siempre apuntan a un tipo determinado de dato, en el ejemplo,
“apuntador” apuntará a un objeto tipo entero.
NOTA: int *datoprt es equivalente a int* datoptr. El operador de indirección
puede estar junto al identificador o junto al tipo de dato.
IMPORTANTE: Debe quedar claro que p.e. int *prt; prt es un apuntador a un int, y
que prt NO es una variable tipo int.

B. *entero =103. int puntero. ” no creará un objeto de tipo “int” en memoria. además es posible sumarle un entero a un apuntador. La expresión “puntero++” incrementa el apuntador. con un mismo identificador o por separado. // Equivale a puntero=&vector[0]. int *entero. aunque sean de distinto tipo. entero= &A. que mantengan algún tipo de relación y manipularlos todos juntos. Por ejemplo: “int *datoptr. . los apuntadores al declararlos contienen “basura”. int A. En este caso. *puntero++ . Se lee “dirección de”. puntero = vector . el apuntador apuntará a la posición 1 del vector. es decir. En este caso lo que hay en la posición cero. La expresión “*puntero++. //Equivale a vector[0]++. sólo crea una variable que puede contener una dirección de memoria. hacemos referencia al contenido de las variables a través del apuntador con el operador de indirección (*) Como todas las variables. Por lo tanto se debe inicializar a 0 o NULL o a una dirección de memoria. B=*entero.” incrementa el contenido que hay en la posición donde está apuntando el apuntador. que apuntará a la siguiente posición del vector. //B vale 123 //entero apunta a la dirección de la variable A //equivale a la línea A=103 //equivale a B=A Entonces. puntero++. // entero = &vector[1].El operador & u operador de dirección. B=123. Declarar un puntero no creará un objeto. ESTRUCTURAS Las estructuras nos permiten agrupar varios datos. es un operador que devuelve la dirección de su operando. Ejemplo: int vector[10]. Apuntadores y arreglos Aritmética de apuntadores Un apuntador puede incrementarse (++) o decrementarse (--).

se utiliza el operador de acceso a punteros ( ->) para acceder a los datos miembro.Nombre= “Francisco”. . Estamos declarando P1 como una variable tipo Persona. … }. int edad. En el caso de que un apuntador apunte a una estructura.Una estructura es un tipo de dato definido por el usuario. tipo_variable identificador.Nombre. Sintaxis struct nombre_de_la_estructura { tipo_variable identificador. char Direccion[30]. Las estructuras también son llamadas registros. P2=&P1. cout<< P1. } P1. //dato miembro //dato miembro //dato miembro Ejemplo: struct Persona{ char Nombre[20]. Las estructuras son tipos de datos agregados que se construyen empleando elementos de otros tipos. Ejemplo: Persona *P2. tipo_variable identificador. P2->Nombre = “Pedro”.) Por ejemplo: P1. El accedo a un dato miembro es mediante el operador punto (. char sexo.