C a promenne

Jakub Slajs xslajsj
Středa Březen 17 14:31:27 CET 2004


> Ano samozrejme, ale to prece nevadi? Naopak, muzu pristupovat na libovolne
> misto pole. Jenom se jinak indexuje. Samozrejme musim vedet, co delam.

Spravne a protoze jste uvedl pouze jiny zapis bez dalsiho komentare, radeji
jsem to jeste rozvedl aby to bylo pro kazdeho naprosto zrejme.

> > Jeste k puvodnimu dotazu - v C se pole v podstate chape vzdy jako pointer,
> > takze pokud prekladac neumi optimalizovat praci s pointery, asi zadny lepsi
> > zpusob nevymyslite.

Kdyz uz jsme si tady udelali tohle okenko jazyka C, tak by bylo take dobre si
zopakovat v cem se vlastne lisi pole od pointeru (divili byste se kolik lidi
si mysli ze je to jedno a to same). Tedy vezte ze:

- operator sizeof vraci velikost pole (nikoli velikost ukazatele na pole)
- operator & vrati ukazatel na pole a ne ukazatel na prvni prvek
  (ciselna hodnota je stejna ale lisi se typ)
- pole lze pouzit k inicializaci reference (C++)

Dalsim kamenem urazu jsou vicerozmerna pole. Prave ta utkvela predstava ze
pole = pointer vede k nasledujicim konstrukcim:

  int **p = (int**) new int[3][4]; // CHYBA

spravne to ma byt:

  int (*p)[4] = new int[3][4];

S pozdravem,

Jakub Slajs

_________________________________________________________
Do You Yahoo!?
Get your free @yahoo.com address at http://mail.yahoo.com





Další informace o konferenci Hw-list