Prikaz jedne poruke
Stara 19.11.2020, 0:34   #2
Neutrino
Deo inventara foruma
 
Član od: 17.6.2011.
Poruke: 7.336
Zahvalnice: 94
Zahvaljeno 3.334 puta na 2.010 poruka
Određen forumom Re: 0.0000 као резултат аутпута формата double [програм

Veoma jednostavno, tvoja printf() funkcija štampa vrednost &b, koja ne predstavlja vrednost b već memorijsku lokaciju gde je podatak smešten.

Da konfuzija bude veća, prilikom štampe naterao si printf() da eksplicitno kastuje izlaz od &b u float čime bi trebalo da kao rezultat dobiješ veoma čudne brojeve ili ako je kompajler tako podešen, nule.

Ispravan kod bi izgledao ovako.

Kod:
#include <stdio.h>

int main() {
    double b = 3.45667;
    // Stampa vrednost b.
    printf("Vrednost b: %f\n", b);

    // Stampa lokaciju u memoriji (pokazivac) gde se b nalazi.
    printf("Adresa za b: %p\n", &b);
    return 0;
}
Dakle, zapamti, kada štampaš proste podatke ne želiš da koristiš operator & već direktno njihove nazive.
Neutrino je offline   Odgovor sa citatom ove poruke