Witam,
tablicę wielowymiarową(szczególnie 2D) możesz sobie wyobrazić jako plansze np. szachową. Tam masz wiersze oraz kolumny.
typ_elementów_tablicy nazwa_tablicy [ ilość wierszy ][ ilość kolumn ];
int tab [ 10 ][ 10 ];
Taka inicjalizacja stworzy Ci 100 komórek. Możesz sobie to wyobrazić, że plansza ma 10 wierszy oraz 10 kolumn.Razem 10*10 = 100.
Deklaracja tablicy wymiarowej:
int tab[3][2] = {{1,3},{4,5},{0,-1}};
Zauważ, że masz 3 [3]wiersze {1,3}, {4,5}, {0, -1}. W każdym wierszu kolumna ma 2[2] elementy 1,2 - 4,5 - 0,-1.
Wyświetlenie(użycie) argumentu z tablicy:
std::cout << tab[0][0]//Taki zapis sprawi, że wyświetli się 1 tzn. wyświetli się wartość //1wiersza oraz 1kolumny. Pamiętaj aby nie wyjść poza zakres wierszy lub kolumny.
Przekazanie tablicy jako argumentu nie różni się niczym innym kiedy przekazujemy jakikolwiek inny typ.
void zamiana(int **tab/*lub int tab[][] lub int tab[3][3] */)
{
for(int i=0;i<3;i++)
for(int j=0;j<3;j++)
tab[i][j]*=tab[i][j]; //lub tab[i][j] = tab[i][j]*tab[i][j];
}
Podając tablicę jako argument możesz użyć **tab(wskaźnik), tab[][], tab[size_t][size_t]
Co do tablicy więcej niż 2 wymiarowych to zasada ich działania jest bardzo podobna. Myślę że jak ograniesz te mniej wymiarowe to spokojnie poradzisz sobie z nimi. Co do typu tablic typu char to nie różnią się one niczym z int to tylko typ i musisz uważać na zakres. Np char t= '10' // niemożliwe bo char jest znakiem i to nie przejdzie.
Więcej info o tablicach:
http://www.algorytm.edu.pl/tablice-w-c/tablica-jako-argument-funkcji.html
http://www.algorytm.edu.pl/tablice-w-c/tablice-wielowymiarowe.html