Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: LeoJ24 en 13 Enero 2013, 19:42 pm



Título: Duda con Punteros en C
Publicado por: LeoJ24 en 13 Enero 2013, 19:42 pm
Buenass...
Estoy estudiando los punteros en C y no me queda muy claro como funciona. la idea que tengo de los punteros es que por ej yo tengo:
Citar
int var;
int *punt;
entonces esto significa que *punt apunta a la direccion de var?
y cuando quiera mostrarlo en pantalla tendria que poner esto?:
Citar
printf ("LA DIRECCION DE VAR ES: %d. SU VALOR ES: %i", &punt, var);
esta bien asi¿
Gracias de antemano.
salu2


Título: Re: Duda con Punteros en C
Publicado por: zonahurbana en 14 Enero 2013, 02:51 am
Código
  1. int var;
  2. int * punt;
Con estas declaraciones, var es una variable de tipo entero, y punt es un puntero que puede almacenar la dirección de memoria de una variable entera.
Pero... no por estar las declaraciones una tras otra indica que punt almacena la dirección de var: eso no es cierto.

Para que punt almacene la dirección de memoria de var es necesaria otra sentencia que lo especifique:
Código
  1. int var, * punt;
  2. punt = &var;

O en todo caso:
Código
  1. int var;
  2. int * punt = &var;


Título: Re: Duda con Punteros en C
Publicado por: dooque en 14 Enero 2013, 20:47 pm
Hola!

Agrego un poco más de código de ejemplo:

Código:
int a = 0;
int * ptr = NULL;

ptr = &a; /* A "ptr" le asignamos la direccion de memoria de "a" */

printf("Direccion de memoria de ptr: 0x%X\n", &ptr);

printf("Direccion de memoria de a: 0x%X\n", &a);
printf("Direccion de memoria de a: 0x%X\n", ptr);

*ptr = 25;

printf("Valor de a: %i\n", a);
printf("Valor de a: %i\n", *ptr);

Saludos.