Duda con Punteros - C

Iniciado por LeoJ24, 15 Enero 2013, 05:18 AM

0 Miembros y 2 Visitantes están viendo este tema.

LeoJ24

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

Puntoinfinito

Me parece extraño, creo que lo que esta haciendo es declarar la dirección del puntero punt a el de la variable numero.
AHORA EN SOFTONIC || CLICK HERE!!
Base64: QWNhYmFzIGRlIHBlcmRlciAxIG1pbnV0byBkZSB0dSB2aWRhLiBPbOkh



HACK AND 1337 : http://hackandleet.blogspot.com
WEBSITE: http://www.infiniterware.

x64core

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?

Puntoinfinito

He dicho lo mismo que has dicho tú.
AHORA EN SOFTONIC || CLICK HERE!!
Base64: QWNhYmFzIGRlIHBlcmRlciAxIG1pbnV0byBkZSB0dSB2aWRhLiBPbOkh



HACK AND 1337 : http://hackandleet.blogspot.com
WEBSITE: http://www.infiniterware.

rir3760

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
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language

zonahurbana

rir3760, dicha declaración es además una definición; y la expresión, una sentencia. ¿Verdad?
Nunca dejar de aprender es importante, más allá del ritmo que se siga ...

dato000

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