Apuntadores

Páginas: 9 (2211 palabras) Publicado: 12 de noviembre de 2012
Índice
1.1 Direcciones en memoria ……………………………………………………1
1.2 Concepto de Apuntador………………………….…………………………3
1.2.1. Declaración de punteros……………………………………...……………..4
1.2.2. Inicialización* (iniciación) de punteros……………………………….....…4
1.2.3. Indirección de punteros………………………………………………….…..6
1.2.4. Punteros y verificación de tipos………………………………………..…...7
1.3. Punteros null yvoid…………………………………………………………....8
1.4. Punteros a punteros………………..…………………………………………..9
10.5. Punteros y Arrays………………….………………………….……………...10





1.1 Direcciones en memoria
Cuando una variable se declara, se asocian tres atributos fundamentales con la misma: su nombre, su tipo y su dirección en memoria.
int n; /* asocia al nombre n, el tipo int y la dirección de alguna posición de memoria donde se almacena elvalor de n */

Esta caja representa la posición de almacenamiento en memoria. El nombre de la variable está a la izquierda de la caja, la dirección de variable está encima de la caja y el tipo de variable está debajo en la caja. Si el valor de la variable se conoce, se representa en el interior de la caja.

Al valor de una variable se accede por medio de su nombre. Por ejemplo, se puede imprimirel valor de n con la sentencia:
printf ("%d",n;)
A la dirección de la variable se accede por medio del operador de dirección &. Por ejemplo, se puede imprimir la dirección de n con la sentencia:
printf ("%p"&,n ) ;
El operador de dirección "&" «opera» (se aplica) sobre el nombre de la variable para obtener sus direcciones. Tiene precedencia de nivel 15 con el mismo nivel que eloperador lógico NOT ( ! ) y el operador de preincremento + +.

Ejemplo 1.1
Obtener el valor y la dirección de una variable.
#include <stdio.h>
void main()
{
int n = 75;
print f ( "n = %d\n" , n); / * visualiza el valor de n * /
printf ("&n = %p\n",& n); / * visualiza dirección de n * /
}

1.2. Concepto de Apuntador
Cuando se declara una variable C, el compiladorestablece un área de memoria para almacenar el contenido de la variable. Cuando se declara una variable i n t (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.
Un puntero es una dirección de memoria. El concepto de punteros tiene correspondencia en la vida diaria.Cuando se telefonea a una persona, se utiliza un puntero (el número de teléfono que se marca).
Son punteros a edificios y teléfonos, respectivamente. Un puntero en C también indica dónde encontrar algo, ¿dónde encontrar los datos que están asociados con una variable? Un puntero C es la dirección de una Variable. Los punteros se rigen por estas reglas básicas:
* un puntero es una variable comocualquier otra;
* una variable puntero contiene una dirección que apunta a otra posición en memoria;
* en esa posición se almacenan los datos a los que apunta el puntero;
* un puntero apunta a una variable de memoria.

Figura 1. Relacion entre *p y el valor de p.
Ejemplo 1.2
#include <stdio.h>
void main()
{
int n = 75;
int* p = &n; /* p variable puntero, tienedirección de n*/
printf("n = %d, &n = %p, p = %p\n",n,&n,p);
printf ("&p = %p\n",&p)
}
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 el ejemplo anterior.

1.2.1. Declaración de punteros
Al igual que cualquier variable, las variables punteros han de ser declaradasantes de utilizarlas. La declaración de una variable 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 (*), mediante el siguiente formato:
<tipo de dato apuntado> *<identificador de puntero>
Algunos ejemplos de variables punteros:
int* ptrl; / * Puntero a un tipo de dato...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Apunte
  • Apuntes
  • apuntes
  • apuntes
  • apuntes
  • apuntes
  • Apunte
  • apuntes

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS