Prethodna tema :: Sljedeća tema |
Autor/ica |
Poruka |
Morpheus Forumaš(ica)


Pridružen/a: 19. 04. 2004. (20:33:19) Postovi: (40)16
Lokacija: Matrica
|
|
[Vrh] |
|
ahri Forumaš(ica)


Pridružen/a: 19. 11. 2003. (23:16:07) Postovi: (193)16
|
|
[Vrh] |
|
Crni Forumaš(ica)


Pridružen/a: 15. 12. 2003. (01:20:43) Postovi: (23C)16
Spol: 
Lokacija: Zagreb
|
|
[Vrh] |
|
mdoko Forumaš(ica)


Pridružen/a: 30. 11. 2002. (22:17:12) Postovi: (71A)16
Spol: 
Lokacija: Heriot-Watt University, Edinburgh
|
|
[Vrh] |
|
SvekY Forumaš(ica)


Pridružen/a: 21. 11. 2003. (23:44:22) Postovi: (FF)16
Spol: 
Lokacija: unitarni vektorski prostor
|
|
[Vrh] |
|
Void Forumaš(ica)

Pridružen/a: 14. 11. 2002. (18:08:22) Postovi: (FA)16
|
|
[Vrh] |
|
ZELENIZUBNAPLANETIDO SADE Forumaš(ica)


Pridružen/a: 04. 03. 2004. (19:56:15) Postovi: (54F)16
Lokacija: hm?
|
Postano: 18:36 ned, 13. 6. 2004 Naslov: |
|
|
[quote="SvekY"]Ali zar nije, (malo pojednostavnjeno): [code:1]int *x[12];[/code:1] pokazivač na polje.[/quote]
Hm. ovo bi bio pokazivac na polje. (iako se, tehnicki gledano, sa poljem kao takvim, barata kao sa pointerom na prvi element polja, ovo bi C nazvao na user razini pointerom na polje)
[code:1]int *(x[12])[/code:1]
SvekY (napisa): | Ali zar nije, (malo pojednostavnjeno): pokazivač na polje. |
Hm. ovo bi bio pokazivac na polje. (iako se, tehnicki gledano, sa poljem kao takvim, barata kao sa pointerom na prvi element polja, ovo bi C nazvao na user razini pointerom na polje)
_________________
Pupoljak nije negiran. Rekao sam to i ponovit cu to jos jedanput. Pupoljak NIJE negirAn.
MADD
(Mothers Against Dirty Dialectics)
Based on a true story. NOT.
Ko ih sljivi, mi sviramo punk 
|
|
[Vrh] |
|
Gost
|
|
[Vrh] |
|
veky Forumaš(ica)

Pridružen/a: 09. 12. 2002. (19:59:43) Postovi: (5B0)16
Lokacija: negdje daleko...
|
Postano: 22:03 ned, 13. 6. 2004 Naslov: |
|
|
[quote="Anonymous"]koliko ja znam pokazivač na polje se deklarira kao normalan pokazivač:
int *pp;[/quote]
To je prilično "normalan" pokazivač, ali pokazivač na polje i pokazivač na int nisu jedno te isto. Ti si upravo deklarirao pokazivač na int.
Ono što ti možda pokušavaš reći, je da je polje intova specijalna vrsta pokazivača na int u Cu, što jest istina, ali to naravno ne znači da je pokazivač na polje isto što i pokazivač na int. Eventualno (iako ni to nije potpuno točno), pokazivač na polje (intova) je pokazivač na _pokazivač na_ int.
HTH,
Anonymous (napisa): | koliko ja znam pokazivač na polje se deklarira kao normalan pokazivač:
int *pp; |
To je prilično "normalan" pokazivač, ali pokazivač na polje i pokazivač na int nisu jedno te isto. Ti si upravo deklarirao pokazivač na int.
Ono što ti možda pokušavaš reći, je da je polje intova specijalna vrsta pokazivača na int u Cu, što jest istina, ali to naravno ne znači da je pokazivač na polje isto što i pokazivač na int. Eventualno (iako ni to nije potpuno točno), pokazivač na polje (intova) je pokazivač na _pokazivač na_ int.
HTH,
|
|
[Vrh] |
|
Morpheus Forumaš(ica)


Pridružen/a: 19. 04. 2004. (20:33:19) Postovi: (40)16
Lokacija: Matrica
|
Postano: 20:49 pon, 14. 6. 2004 Naslov: |
|
|
[quote]
Ono što ti možda pokušavaš reći, je da je polje intova specijalna vrsta pokazivača na int u Cu, što jest istina, ali to naravno ne znači da je pokazivač na polje isto što i pokazivač na int. Eventualno (iako ni to nije potpuno točno), pokazivač na polje (intova) je pokazivač na _pokazivač na_ int.
[/quote]
Slazem se sa svim gore navedenim, ali to opet ne utjece na deklaraciju,tj:
int *p[12]-je polje pokazivaca, a ne pokazivac na polje dimenzije 12,
a sad za pokazivač na polje ja ga znam deklarirat samo na nacin:
int *pp,p[20];
pp=p;
ako postoji koji drugi nacin, javite mi
Citat: |
Ono što ti možda pokušavaš reći, je da je polje intova specijalna vrsta pokazivača na int u Cu, što jest istina, ali to naravno ne znači da je pokazivač na polje isto što i pokazivač na int. Eventualno (iako ni to nije potpuno točno), pokazivač na polje (intova) je pokazivač na _pokazivač na_ int.
|
Slazem se sa svim gore navedenim, ali to opet ne utjece na deklaraciju,tj:
int *p[12]-je polje pokazivaca, a ne pokazivac na polje dimenzije 12,
a sad za pokazivač na polje ja ga znam deklarirat samo na nacin:
int *pp,p[20];
pp=p;
ako postoji koji drugi nacin, javite mi
|
|
[Vrh] |
|
veky Forumaš(ica)

Pridružen/a: 09. 12. 2002. (19:59:43) Postovi: (5B0)16
Lokacija: negdje daleko...
|
Postano: 21:19 pon, 14. 6. 2004 Naslov: |
|
|
[quote="Morpheus"][quote]
Ono što ti možda pokušavaš reći, je da je polje intova specijalna vrsta pokazivača na int u Cu, što jest istina, ali to naravno ne znači da je pokazivač na polje isto što i pokazivač na int. Eventualno (iako ni to nije potpuno točno), pokazivač na polje (intova) je pokazivač na _pokazivač na_ int.
[/quote]
Slazem se sa svim gore navedenim, ali to opet ne utjece na deklaraciju,tj:
int *p[12]-je polje pokazivaca, a ne pokazivac na polje dimenzije 12,
a sad za pokazivač na polje ja ga znam deklarirat samo na nacin:
int *pp,p[20];
pp=p;
ako postoji koji drugi nacin, javite mi[/quote]
Opet. To je pokazivač na int, konkretni int koji se još zove p[0] . "Pokazivač na polje", eventualno bi bio nešto poput int**pp .
Morpheus (napisa): | Citat: |
Ono što ti možda pokušavaš reći, je da je polje intova specijalna vrsta pokazivača na int u Cu, što jest istina, ali to naravno ne znači da je pokazivač na polje isto što i pokazivač na int. Eventualno (iako ni to nije potpuno točno), pokazivač na polje (intova) je pokazivač na _pokazivač na_ int.
|
Slazem se sa svim gore navedenim, ali to opet ne utjece na deklaraciju,tj:
int *p[12]-je polje pokazivaca, a ne pokazivac na polje dimenzije 12,
a sad za pokazivač na polje ja ga znam deklarirat samo na nacin:
int *pp,p[20];
pp=p;
ako postoji koji drugi nacin, javite mi |
Opet. To je pokazivač na int, konkretni int koji se još zove p[0] . "Pokazivač na polje", eventualno bi bio nešto poput int**pp .
|
|
[Vrh] |
|
mdoko Forumaš(ica)


Pridružen/a: 30. 11. 2002. (22:17:12) Postovi: (71A)16
Spol: 
Lokacija: Heriot-Watt University, Edinburgh
|
Postano: 15:39 uto, 15. 6. 2004 Naslov: |
|
|
[quote="Morpheus"]
a sad za pokazivač na polje ja ga znam deklarirat samo na nacin:
int *pp,p[20];
pp=p;
ako postoji koji drugi nacin, javite mi
[/quote]
Ovo sto si ti napravio je postavio pp da pokazuje na p[0], ako inkrementas pp (++pp) on ce pokazivati na p[1] sto dokazuje da je to pointer na integer, jer se je prilikom inkrementa pomakao za onoliko byteova koliko iznosi sizeof(int), da je to bio pointer na polje od 20 integera, kao sto zelis da bude, prilikom inkrementa bi se pomakao za 20 * siozeof(int)
Evo na sto mislim:
[code:1]
int* int_p; // pointer na integer
int* array[10]; // polje od 10 pointera na integer
int (*array_p)[10]; // pointer na polje od 10 integera
[/code:1]
Da se uvjeris da prva i treca deklaracija nisu ekvivalentne provjeri da se slijedece stvari evaluiraju kao 1 (i.e. [i]true[/i])
[code:1]
sizeof(*int_p) == sizeof(int);
sizeof(*array_p) == 10 * sizeof(int);
[/code:1]
Morpheus (napisa): |
a sad za pokazivač na polje ja ga znam deklarirat samo na nacin:
int *pp,p[20];
pp=p;
ako postoji koji drugi nacin, javite mi
|
Ovo sto si ti napravio je postavio pp da pokazuje na p[0], ako inkrementas pp (++pp) on ce pokazivati na p[1] sto dokazuje da je to pointer na integer, jer se je prilikom inkrementa pomakao za onoliko byteova koliko iznosi sizeof(int), da je to bio pointer na polje od 20 integera, kao sto zelis da bude, prilikom inkrementa bi se pomakao za 20 * siozeof(int)
Evo na sto mislim:
Kod: |
int* int_p; // pointer na integer
int* array[10]; // polje od 10 pointera na integer
int (*array_p)[10]; // pointer na polje od 10 integera
|
Da se uvjeris da prva i treca deklaracija nisu ekvivalentne provjeri da se slijedece stvari evaluiraju kao 1 (i.e. true)
Kod: |
sizeof(*int_p) == sizeof(int);
sizeof(*array_p) == 10 * sizeof(int);
|
_________________ Extraordinary claims require extraordinary evidence. – Carl Sagan
|
|
[Vrh] |
|
|