Test Foro de elhacker.net SMF 2.1

Programación => Programación C/C++ => Mensaje iniciado por: LeoJ24 en 15 Enero 2013, 05:18 AM

Título: Duda con Punteros - C
Publicado por: LeoJ24 en 15 Enero 2013, 05:18 AM
Buenassss.
Estoy medio estancado con los punteros en C.
Estaba leyendo un Curso de punteros en C y aparecio el sig ejemplo como demostracion de como funciona un puntero:
#include <stdio.h>

int main()
    {
    int numero;
    int *punt;

    numero = 43;
    punt = №
    printf( "Dirección de numero = %p, valor de numero = %i\n", &numero, numero );
    }


Ahora, aca se declaran dos variables de tipo int: numero y *punt y luego se les asigna un valor, a numero=43 y punt=№ <--- ESTO ES LO QUE NO ENTIENDO.
osea punt seria igual a numero (por el №) que a su vez es igual a 43? o punt es igual a la direccion de numero, cuyo valor es 43(el val de numero)? o como es?
Gracias de antemano.
Salu2
Título: Re: Duda con Punteros - C
Publicado por: Puntoinfinito en 19 Enero 2013, 12:04 PM
Me parece extraño, creo que lo que esta haciendo es declarar la dirección del puntero punt a el de la variable numero.
Título: Re: Duda con Punteros - C
Publicado por: x64core en 20 Enero 2013, 00:49 AM
Cita de: LeoJ24 en 15 Enero 2013, 05:18 AM
Buenassss.
Estoy medio estancado con los punteros en C.
Estaba leyendo un Curso de punteros en C y aparecio el sig ejemplo como demostracion de como funciona un puntero:
#include <stdio.h>

int main()
    {
    int numero;
    int *punt;

    numero = 43;
    punt = №
    printf( "Dirección de numero = %p, valor de numero = %i\n", &numero, numero );
    }


Ahora, aca se declaran dos variables de tipo int: numero y *punt y luego se les asigna un valor, a numero=43 y punt=№ <--- ESTO ES LO QUE NO ENTIENDO.
osea punt seria igual a numero (por el №) que a su vez es igual a 43? o punt es igual a la direccion de numero, cuyo valor es 43(el val de numero)? o como es?
Gracias de antemano.
Salu2
se declaran uno de tipo int y un puntero, son cosas distintas.
"*punt" seria el valor de la variable numero.

Cita de: Puntoinfinito en 19 Enero 2013, 12:04 PM
Me parece extraño, creo que lo que esta haciendo es declarar la dirección del puntero punt a el de la variable numero.
que carajos estas hablando?
Título: Re: Duda con Punteros - C
Publicado por: Puntoinfinito en 20 Enero 2013, 13:39 PM
He dicho lo mismo que has dicho tú.
Título: Re: Duda con Punteros - C
Publicado por: rir3760 en 20 Enero 2013, 18:02 PM
Cita de: Puntoinfinito en 20 Enero 2013, 13:39 PMHe dicho lo mismo que has dicho tú.
Honestamente y en buen plan, no.

Lo seria si tu comentario hubiera sido mas o menos así: Supongo la intención es almacenar en el puntero (la variable "punt") la dirección en memoria del objeto (la variable "numero") para así practicar el uso de los operadores "&" y "*" ...

Hay que tener cuidado con el lenguaje, si se utiliza "declarar" uno piensa en una declaración pero en el caso del programa original:
int numero;
int *punt; /* Declaracion */

numero = 43;
punt = &numero; /* Expresion */

El almacenamiento de la dirección en la variable "punt" no ocurre en su declaración, ocurre en una expresión donde se utiliza el operador de asignación "=".

Un saludo
Título: Re: Duda con Punteros - C
Publicado por: zonahurbana en 20 Enero 2013, 19:29 PM
rir3760, dicha declaración es además una definición; y la expresión, una sentencia. ¿Verdad?
Título: Re: Duda con Punteros - C
Publicado por: dato000 en 21 Enero 2013, 01:34 AM
eso de № me parece que esta mal redactado pero es para indicar la variable.

Ya no hace falta decir más sobre a ese apuntador, apunta a una variable int, y se puede modificar mientras apunta a una memoria reservada, funciona muy bien para arreglos, así en lo básico puede que se vea confuso y hasta inutil, pero para estructuras, parametros, funciones, arreglos...en fin, sus usos son multiples