First page Back Continue Last page Overview Graphics
Vícerozměrná pole
pole n-té úrovně: prvky pole jsou zase pole
- např. int a[3][4]; i[0][2] = 3;
máme-li dvourozměrné double b[2][3], pak b[i][j] se vyhodnocuje takto:
- operátor [] je asociativní zleva doprava: ((b[i])[j])
- b[i] je totéž jako *(b + i) a b[i][j] je stejné jako *(*(b + i) + j)
- b je ukazatel na první prvek, b + i na i-tý prvek, typu „pole double ze tří prvků“
- *(b + i) je pole, převede se na ukazatel na první prvek, což je adresa prvního čísla i-té řádky
- k ní se přičte j (pointerová aritmetika) a dereferencí dostanu hodnotu b[i][j]