elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Curso de javascript por TickTack


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Duda con Punteros en C
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Duda con Punteros en C  (Leído 985 veces)
LeoJ24

Desconectado Desconectado

Mensajes: 31



Ver Perfil
Duda con Punteros en C
« 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


En línea

zonahurbana

Desconectado Desconectado

Mensajes: 178

RS, JC.


Ver Perfil WWW
Re: Duda con Punteros en C
« Respuesta #1 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;


En línea

Nunca dejar de aprender es importante, más allá del ritmo que se siga ...
dooque

Desconectado Desconectado

Mensajes: 170



Ver Perfil
Re: Duda con Punteros en C
« Respuesta #2 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.
En línea

Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.  -- Kernighan
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines