[LUGOS-PROG] Polja in kazalci
Rok Papež
rok.papez at lugos.si
Sun Sep 21 19:14:52 CEST 2003
Živjo Simon!
Dne nedelja 21 september 2003 18:12 je Simon Štriker napisal(a):
> Nekaj se igram in proučujem v C++ pa mi ena stvar ni čisto jasna.
>
> Na primer, da deklariramo polje: char polje[]="Hello";
>
> ukaz: cout << polje[1] izpiše znak 'e'
>
> Zanima me, ali morda kdo ve, zakaj ukaz: cout << &polje[1] ne izpiše
> naslova, kjer se nahaja drugi element polja, ampak izpiše niz "ello".
cout << (void*)&polje[2];
ti izpiše naslov.
cout je objekt in ko podaš njegovi metodi "<<" parameter char*, ga poskuša
izpisati kot zaporedje znakov.
char * razume kot kazalec v pomnilnik od koder naj prebira znake in se ustavi
ob znaku '\0'. To je, znaku z vrednostjo 0.
Če mu podaš kazalec tipa void, ga bo razumel kot naslov in kot takega tudi
izpisal.
> Zanima me tudi, kako potem pridemo do naslova, kjer se nahaja znak 'e'.
&polje[1] je naslov znaka 'e'. Samo z g++ se nista ravno razumela kaj želiš
doseči.
--
best regards,
Rok Papež
More information about the lugos-prog
mailing list