Punteros En C++

Páginas: 6 (1383 palabras) Publicado: 22 de noviembre de 2012
Punteros
• Los punteros en el Lenguaje C, son variables que "apuntan", es decir que poseen la dirección de la ubicación en memoria de otra variable. • Por medio de ellos tenemos un método muy interesante para acceder a la memoria. • Es una de las “especialidades” del lenguaje C.

Punteros
• Este tema suele ser bastante conflictivo ya que muchos programadores en otros lenguajes y nuevos enC, lo ven como un método extraño o al menos desacostumbrado, lo que produce cierto rechazo. • Sin embargo, a medida que uno se va familiarizando con ellos, se convierten en una herramienta poderosa.

Punteros
• Se usan fundamentalmente para el manejo de variables complejas, argumentos, etc. • También los utilizamos cuando pasamos un parámetro por referencia a una función. • Tienen tipo, igualque las variables comunes, aunque sólo contengan una dirección se debe indicar el tipo.

Declaración
• La declaración de un puntero se hace de la siguiente forma: tipo *nombre; Ejemplo: int *mens; • mens es un puntero a enteros, debemos incluir siempre el asterisco al declarar punteros.

Declaración
• En forma conjunta podemos declarar variables comunes de un tipo y punteros a variables delmismo tipo. Ejemplo: int base, *mens;

Declaración
• La diferencia entre los tipos de la declaración anterior es: • base es una variable entera común y el compilador reservará el espacio que ocupa una variable entera (p. ej. 2 bytes). • Para mens el compilador reserva el espacio necesario para guardar una dirección.

Aritmética de Punteros
• Si solo guardan una dirección, ¿porqué hay queasignarles un tipo? • Cuando tenemos una secuencia de variables, pretendemos desplazar un puntero recorriéndolas, habiendo declarado el tipo de variable a que apuntan, el sistema sabe cuántos bytes necesita saltar para llegar a la variable siguiente o a la anterior.

Aritmética de Punteros
Si teniendo declarado el puntero p como
float *p ;

Lo movemos un lugar, p. ej.
p++ ;

Eldesplazamiento obtenido es el de un elemento del tipo float.

p

Tamaño de 1 byte

Aritmética de Punteros
Si en cambio lo declaramos como:
int *p ;

y lo movemos nuevamente un lugar:
p++ ;

El desplazamiento obtenido es el de un elemento del tipo int (asumimos 2 bytes).

p

Tamaño de 1 byte

Aritmética de Punteros
Por último si lo hemos declarado como:
char *p ;

y lo movemos unlugar:
p++ ;

El desplazamiento obtenido es el de un elemento del tipo char.

p

Tamaño de 1 byte

Aritmética de Punteros
• Esto se denomina: aritmética de punteros. • Observe que la cantidad de bytes que se desplaza un puntero para saltar de una variable a otra (del mismo tipo) es enteramente dependiente del tamaño que el sistema reserva para ese tipo de variables. • Esto cambia con elcompilador.

Operadores de Punteros
• Declaramos lo siguiente:
char a, b, *c, *d ; c = &a ; *c = 'M' ; d = c ;

• La primera línea dice que c y d son punteros a char. La segunda apunta el puntero c a la dirección de la variable a. (que también es del tipo char)

Operadores de Punteros
• En la tercera línea se hace que el contenido del lugar donde apunta c sea reemplazado por el código dela letra M. • En la cuarta línea hacemos que d apunte a donde apunta c, que es la dirección de la variable a. • Puede haber varios punteros apuntando a una misma dirección.

Operadores de Punteros
• El operador * sirve declarar un puntero. • También sirve, una vez declarado el puntero para conocer el contenido de las posiciones de memoria apuntadas por el puntero. • El operador & significa:la dirección de.

Operadores de Punteros
• Por este motivo en:
c = &a;

• Decimos que c apunta a la dirección de a. • Esto quiere decir que estamos almacenando la dirección de a como contenido de la variable c. • Esto es lo que contiene un puntero.

Operadores de Punteros
• En:
*c = 'M'; d = c;

• Reemplazamos el contenido de la dirección apuntada por c, (lugar de la variable a) con...
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