C y C + + Programación Recursos

Compartir / Guardar
Búsqueda personalizada

Punteros en C + +

Publicado el 10 de septiembre 2008

Podemos decir que el puntero como una variable que contiene la dirección de memoria de otra variable. Si una variable contiene la dirección de otra variable, la primera variable se dice que apuntan a la segunda.

La declaración de un puntero

Si una variable está llevando a cabo la dirección de otra variable, entonces podemos declararlo como

  * var_type varName; 

Aquí var_type es la vigente lenguaje C + + tipo de datos y varName es el nombre de la variable puntero. El tipo de una variable define que tipo de variable un puntero puede albergar.

Hay dos tipos de operadores de puntero, * y &. y el es un operador unario que devuelve la dirección de memoria de su operando. por ejemplo,

vvarName = &newVar;

El operador * es el complemento del operador &. Devuelve el valor de la variable ubicada en la dirección que sigue. por ejemplo,

  varName = * newVar; 

Ejemplo de puntero

Examinar el programa llamado POINTERS.CPP de un ejemplo sencillo del uso de punteros.

  / / Pointers.cpp
 # Include <iostream.h>

 main ()
 (
	 int * pt_int;
	 float * pt_float;
	 int = 7 de cerdo, perro = 27;
	 float x = 1,2345, y = 32,14;
	 void * en general;

	 pt_int = &pig;
	 * + = Pt_int perro;
	 cout <<"Pig ahora tiene el valor de" <<* pt_int <<"\ n";
	 general = pt_int;

	 pt_float = &x;
	 + Y = 5 * (pt_float *);
	 Cout <<"y ahora tiene el valor de" <<y <<"\ n";
	 general = pt_float;

	 const char * nombre1 = "Juan"; / / El valor no se puede cambiar
	 const char * nombre2 = "Juan"; / / puntero no puede ser cambiado
 )

 / / Resultado de la ejecución
 / /
 / / Cerdo ahora tiene el valor de 34
 / / Y ahora tiene el valor de 38,3125 

Esta es una revisión de puntero y si se encuentra cómodo con el uso de punteros, puede saltarse este programa de ejemplo completo. Un puntero en cualquiera de ANSI-C o C + + se declara con un asterisco al principio el nombre de variable. El puntero es entonces un puntero a una variable de que un tipo específico y no debe utilizarse con variables de otros tipos. Así pt_int es un puntero a una variable de tipo entero y no debe ser usado con cualquier otro tipo. Por supuesto, un programador de C con experiencia sabe que es simple para coaccionar el puntero para ser usado con algún otro tipo mediante el uso de un yeso, pero él debe asumir la responsabilidad de su uso correcto.

En la línea 12 el puntero del llamado pt_int se le asigna la dirección de la variable llamada porcina y la línea 13 utiliza el apuntador llamado pt_int para agregar el valor de perro con el valor de cerdo debido a que el asterisco dereferences el puntero exactamente de la misma manera estándar de C. La dirección se utiliza para imprimir el valor de la variable de cerdo en la línea 14 que ilustra el uso de un puntero con el flujo cout operador de salida. Del mismo modo, el puntero a flotar pt_float nombre se le asigna la dirección de x, entonces se utiliza en un cálculo trivial en la línea 18.

Si usted no está completamente a gusto con este programa trivial usando punteros, debe revisar el uso de punteros en cualquier libro de la buena programación C o C Coronado Empresas tutorial antes de continuar adelante porque vamos a suponer que usted tiene un conocimiento profundo de los punteros en el resto de este tutorial. No es posible escribir un programa en C de cualquier tamaño o complejidad significativa sin el uso de punteros.

Páginas: [Página - 1] [Página - 2] [Página - 3] [Página - 4]

Etiquetas: , , ,

Al igual que lo que ves?

Conviértete en uno de los habituales mediante la suscripción! Tú serás el primero en saber cuando agreguemos más grandes puestos como este. Únete por cualquiera de las fuentes RSS o actualizaciones por correo electrónico hoy!

Hay 10 comentarios a este post. Puedes seguir cualquier respuesta a esta entrada a través del feed RSS 2.0 . Puedes saltar al final y dejar una respuesta , o TrackBack desde tu propio sitio.


Deja una respuesta

Usted debe estar conectado para publicar un comentario.