Apuntadores
Instituto de Ingeniería y Tecnología
Departamento de Ingeniería Eléctrica y Computación
Apuntadores
Grupo “C” Equipo 6
Néstor Muñoz Ulloa Matricula: 105764
Oscar Quiñones Matricula: 105581
Programación de Computadoras I
Ensayo
11/Octubre/2011
Índice
Pagina
1. Apuntadores (punteros)…………….……………..………………….………………3
2.1 Declaraciónde un apuntador..…………………………………………………..4
2.2 Inicialización de un apuntador..………………………………………………….5
2.3 Indirección de punteros…………………………………………………….…….6
2.4 Verificación de tipos de punteros…….………………………………………….6
2.5 Punteros null y void…….…………………………………………………………7
2.6 Puntero a puntero……….………………………………………………………...8
2.7 Punteros yarreglos…...………………………...………………………………...9
2.8 Arreglos de punteros………………………………………………………………9
2.9 Aritmética de punteros…………………………………………………...………11
2.10 Punteros constantes frente a punteros constantes………………………..11
2.11 Punteros en funciones………………………………………………………..12
2. Bibliografía…………………………………………………………………………….15
1. Apuntadores (punteros)
Un puntero es una variable que contiene las direcciones de otra variable. Los punteros sonmuy usados en C, en parte porque ellos son, a veces, la única manera de expresar un cómputo, y en parte porque ellos usualmente están dirigidos para códigos mas compactos y eficientes que pueden ser obtenidos en otras formas.
Un puntero es una dirección de memoria. Cada vez que se declara una variable C, el compilador establece un área de memoria para almacenar el contenido de la variable. Cuandose declara una variable int (entera), por ejemplo, el compilador asigna dos bytes de memoria.
El espacio para esa variable se sitúa en una posición específica de la memoria, conocida como dirección de memoria. Cuando se hace uso del valor de la variable, el compilador de C accede automáticamente a la dirección de memoria donde se almacena el entero. Se puede ganar en eficacia en el acceso aesta dirección de memoria utilizando un puntero.
Los punteros se rigen por estas reglas básicas:
* Un puntero es una variable como cualquier otra.
* Una variable puntero contiene una dirección que apunta a otra posición en la memoria.
* En esa posición se almacenan los datos a los que apunta el puntero.
* Un puntero apunta a una variable de memoria.
Los punteros se representan conel símbolo representado en la (Figura 1.1).
*
Figura 1.1 Representación de un apuntador
Con un buen manejo, los punteros pueden ser usados para mayor claridad y simplicidad. En la (Figura 1.2) se muestra el uso del puntero en un código.
#include <stdio.h>
void main()
{
int n = 30;
int* p = &n; / * p variable puntero, tiene dirección de n*/
printf("n = %d, &n = %p,p = %p\n",n,&n,p);
printf ("&p = %p\n",&p);
}
Figura 1.2 Ejemplo del uso de un apuntador
La variable p se denomina puntero debido a que su valor «apunta» a la posición de otro valor. Es un puntero int cuando el valor al que apunta es de tipo int como en figura anterior.
2.1 Declaración de un apuntador
Al igual que cualquier variable, los punteros se declaran antesde ser utilizados. La declaración de un puntero debe indicar al compilador el tipo de dato al que apunta el puntero; para ello se hace preceder a su nombre con un asterisco (Figura 1.1), mediante el siguiente formato:
<tipo de dato apuntado> * <identificador de puntero>
Diferentes ejemplos en los que se utilizan apuntadores (Figura 1.3):
int* ptr1; /*Puntero a un tipo de dato entero (int) */
long* ptr2; /* Puntero a un tipo de dato entero largo (long int) */
char* ptr3; /* Puntero a un tipo de dato char */
float *f; /* Puntero a un tipo de dato float */
Figura 1.3 Tipos de datos con apuntador
En el ejemplo anterior un operador *...
Regístrate para leer el documento completo.