Punteros en c

Páginas: 11 (2530 palabras) Publicado: 22 de mayo de 2010
REPUBLICA BOLIVARIANA DE VENEZUELA
MINISTERIO DEL PODER POPULAR PARA LA EDUCACION UNIVERSITARIA
FUNDACION MISION SUCRE
ALDEA UNIVERSITARIA “DIEGO DE OSORIO”
P.N.F. SISTEMAS E INFORMATICA
SECCION “B”
BASICO CURRICULAR: DESARROLLO DE SOFTWARE
TRAYECTO: II PERIODO III
[pic]

PROFESOR:

DIOGENES UGUETO
PARTICIPANTES:

CHIRINO OSWALDO
CI. NRO. 11.059.167

MAYO 2010
Punterosen C

Un puntero es una variable que contiene una dirección de memoria. Normalmente, esa dirección es la posición de otra variable de memoria. Si una variable contiene la dirección de otra variable, entonces se dice que la primera variable apunta a la segunda.

Si una variable va a contener un puntero, entonces tiene que declararse como tal.

Una declaración de un punteroconsiste en un tipo base, un * y el nombre de la variable. La forma general es: tipo *nombre;

Donde tipo es cualquier tipo válido y nombre es el nombre de la variable puntero. El tipo base del puntero define el tipo de variables a las que puede apuntar. Técnicamente, cualquier tipo de puntero puede apuntar a cualquier dirección de la memoria, sin embargo, toda la aritmética de punteros estahecha en relación a sus tipos base, por lo que es importante declarar correctamente el puntero.

Existen dos operadores especiales de punteros: & y *. El operador de dirección (&) devuelve la dirección de memoria de su operando. El operador de indirección (*) devuelve el contenido de la dirección apuntada por el operando.

Después de declarar un puntero, pero antes de asignarle unvalor, éste contiene un valor desconocido; si en ese instante lo intenta utilizar, probablemente se estrellará, no sólo el programa sino también el sistema operativo. Por convenio, se debe asignar el valor nulo a un puntero que no este apuntando a ningún sitio, aunque esto tampoco es seguro.

Asignación de punteros

Como en el caso de cualquier otra variable, un puntero puede utilizarsea la derecha de una declaración de asignación para asignar su valor a otro puntero. Por ejemplo: int x;
int *p1,*p2;
p1=&x;
p2=p1;

Tanto p1 como p2 apuntan a x.

Aritmética de punteros

Existen sólo dos operaciones aritméticas que se puedan usar con punteros: la suma y la resta.

Cada vez que se incrementa un puntero, apunta a la posición de memoria delsiguiente elemento de su tipo base. Cada vez que se decrementa, apunta a la posición del elemento anterior. Con punteros a caracteres parece una aritmética normal, sin embargo, el resto de los punteros aumentan o decrecen la longitud del tipo de datos a los que apuntan.

Por ejemplo, si asumimos que los enteros son de dos bytes de longitud y p1 es un puntero a entero con valor actual 2000.Entonces, después de la expresión p1++; p1 contiene el valor 2002, no 2001.

No pueden realizarse otras operaciones aritméticas sobre los punteros más allá de la suma y resta de un puntero y un entero. En particular, no se pueden multiplicar o dividir punteros y no se puede sumar o restar el tipo float o el tipo double a los punteros.

Punteros y arrays

Existe una estrecharelación entre los punteros y los arrays. Considérese el siguiente fragmento:

char cad[80], *p1;
p1=cad;

Aquí, p1 ha sido asignado a la dirección del primer elemento del array cad. Para acceder al quinto elemento de cad se escribe cad[4] o *(p1+4).

Un nombre de array sin índice devuelve la dirección de comienzo del array, que es el primer elemento. El compiladortraduce la notación de arrays en notación de punteros. Es decir, al crear un array se genera un puntero (en realidad una constante de puntero) con el mismo nombre que apunta a la dirección del primer elemento del array.

Arrays de punteros

Los punteros pueden estructurarse en arrays como cualquier otro tipo de datos. La declaración, por ejemplo, para un array de punteros a enteros de tamaño...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Punteros en lenguaje c
  • C sharp Manejo de Punteros
  • PUNTEROS PROGRAMACION EN C
  • Ejemplos De Punteros En C++
  • Punteros En C++
  • Punteros en c
  • Puntero c++
  • Punteros en c++

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS