Witam. Postanowiłem napisać tutaj bo byś może dostanę jakąś konkretną odpowiedź która rozjaśni mi umysł. Przygotowałem sobie taki program poglądowy by ułożyć sobie zasadę działania wskaźników.
int main() {
static int** tablica2d = stworz_tablice(n, m);
tablica2d[0][0]=1;
tablica2d[0][1]=2;
cout << tablica2d << endl;
cout << *tablica2d << endl;
cout << *tablica2d[0] << endl;
cout << **tablica2d << endl;
cout << tablica2d[0][0] << endl;
cout << **tablica2d+1 << endl;
}
int** stworz_tablice(int n, int m) {
int **tablica = new int *[n];
for (int i = 0; i < n; ++i)
tablica[i] = new int [m];
return tablica;
}
Niejasne jest dla mnie dlaczego do wskaźnika można odnosić się też poprzez nawiasy kwadratowe, czyli *tablica2d[0]==**tablica2d==tablica2d[0][0] (bo te wartości są równe). Czy można powiedzieć, że nawias kwadratowy jest czymś w postaci wyłuskania? *tablica2d[0] - wydawało mi się że przez taki zapis uzyskam adres zerowej (pierwszej) komórki tablicy. Nie wiem jak się w tym wszystkim odnaleźć.