OpenGL ESP - Programación y OpenGL
¿Quieres reaccionar a este mensaje? Regístrate en el foro con unos pocos clics o inicia sesión para continuar.

[Tutorial C] IV.1 - Punteros

Ir abajo

[Tutorial C] IV.1 - Punteros Empty [Tutorial C] IV.1 - Punteros

Mensaje  HarZe Mar Dic 08, 2009 12:30 am

Punteros

Un puntero, es una dirección a la memoria, "apunta" a la memoria. Normalmente, contienen la dirección a una o varias variables. Los punteros, contienen la dirección en la memoria como un número entero. Los punteros tienen nombre, contenido y dirección; la diferencia con las variables, es que aquí no es una referencia para el compilador, sino una referencia real.

Se declaran, y luego se usan. Para declarlas se hace como las variables, pero añadiendo un * en el tipo, uno o varios, pero eso ya lo veremos. Un ejemplo:
Código:
int x;
int* px = &x;
*px = 5;
Es como decir directamente que x = 5.
Un ejemplo más claro es este:
Código:
int x = 5;
float f = 0.2f;
int* px = &x;
float *pf = &f;
printf("x es %i, px apunta a %i, px es %i\n",x,*px,px);
printf("f es %f, pf apunta a %f, pf es %i",f,*pf,pf);
Si aplicas algo al nombre del puntero, estás modificando la dirección. Si pones un asterisco antes del nombre del puntero, entonces editas aquello a lo que apuntas. Si pones que un puntero es igual a & y el nombre de una variable, estás indicando que el puntero es igual a la dirección de x. A través de ese ejemplo, comprobarás la dirección de los datos en la RAM, entre px y pf, que son enteros, debe haber una diferencia de 4, que es la longitud de int y float. Es la prueba de que el espacio previo al segungo, perteneciente al primero, es de verdad el espacio de 4 bytes.

Un ejemplo más concreto para quien quiera debanarse los sesos.
Spoiler:
HarZe
HarZe
WebMaster & Desarrollador

Cantidad de envíos : 58
Fecha de inscripción : 21/06/2009
Edad : 31

https://opengl-esp.superforo.net

Volver arriba Ir abajo

Volver arriba

- Temas similares

 
Permisos de este foro:
No puedes responder a temas en este foro.