To Grungy : Přes adresovou aritmetiku. ,) Např:
int bla[10][10];
int *bla2 = bla[0];
*bla2 = 1;
bla[0][1] = 2;
bla[1][0] = 3;
int vzdalenost = &bla[1][0] - &bla[0][0];
// pozn: jako foo mám funkci, která vypíše hodnotu z dané adresy
foo(bla2);
foo(bla2 + 1); // vypíše druhý prvek
foo(bla2 + vzdalenost); // vypíše prvek z bla[1][0]
// celý výstup je 1 2 3
Každopádně můžeš udělat i ukazatel na celé pole (případně např do funkce předávat pole referencí). ,)int (*ukbla)[10][10]; // závorka nutná, jinak by to bylo pole ukazatelů
foo(&(*ukbla)[0][0]);
foo(&(*ukbla)[0][1]);
foo(&(*ukbla)[1][0]);
Víc si o tom najdi přes google (linky žádné nemám, C++ jsem se učil z knížky). .)