Punteros en C++

ASP.Net, C#, SQLServer, PHP, MySql, C/C++, Java, JavaScript, HTML, XML, XSL, PL/SQL, Delphi, Visual.Net, Visual Basic, Grafico y otros de programación.

Punteros en C++

Notapor Erwin » Mié Feb 03, 2010 10:38 am

Un puntero se le llama para entendernos mejor un tipo de dato que apunta a una dirección de la memoria física o RAM, Esta RAM se puede decir que está compuesta por bloques y cada uno tiene un numero asignado que se le llama (dirección de memoria). Para explicarme mejor, cada vez que uno crea una variable o declaro un tipo de dato, este se asocia a una parte de la memoria, y si queremos acceder a esa parte de la memoria deberíamos usar un puntero.
En C++ un puntero se declara anteponiendo un asterisco (*) al nombre del tipo de dato.

int *mipt;

En este ejemplo mipt es un puntero de tipo int (integer), se pueden declarar punteros de cualquier tipo de datos.
En este caso mipt se utilizara para trabajar solo con su posición en la memoria. Se le podría asignar un valor pero para acceder a él seria de otra forma.

*mipt = 5;

Aquí asignamos un valor a esa dirección de memoria.
Si pusiéramos. mipt = 5; sin el asterisco lo que estaríamos diciendo es que su posición en la memoria seria la 5, cosa que no estaría bien, ya que la memoria utiliza números hexadecimales, ejemplo 0xff8.
Representación grafica.

Dibujo.JPG
Representacion grafica de memoria fisica.
Dibujo.JPG (5.17 KiB) Visto 112 veces


Con esto no quiero que confundan un Array(Matrix). Pueden ver que los nuemeros dentro de los cuadrados son enteros, es decir esto serian los valores en una dirección de memoria, cual es la dirección pues los números hexa que están debajo. Como se vería esto. Así
int *mipt; si le asignamos la primero dirección su valor seria el 5 verdad; para asignárselo seria así. Recuerden sin el asterisco.
mipt = 0xff1; entonces su valor es 5. Pero si ponemos esto. mipt = 0xff3; ¿Cuál sería su valor? Pues el 30.
La verdad cuando se trabaja con punteros no se le asigna las direcciones de esta forma. Simplemente se les igualas a otros punteros o tipos de datos ya creados normalmente en los constructores de las class para usar su valor.
Erwin
 
Mensajes: 2
Registrado: Mar Ene 26, 2010 11:31 am

Volver a Programación

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado

cron