[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