Właśnie zacząłem uczyć się programowania w C i aby lepiej zrozumieć wskaźniki i tablice, próbowałem odwoływać się do elementów tablicy bez tworzenia żadnego wskaźnika:
for(k1 = 0; k1 < ROW; k1++){
for(k2 = 0; k2 < COLUMN; k2++){
array[k1][k2] = k1*COLUMN + k2 + 1;
printf("[%d][%d] = %d\n", k1, k2, *(array[k1] + k2));
}
}
Cały kod kompiluje się i działa bezbłędnie.
Wyobrażam sobie, że tworzenie wskaźnika dla każdej tablicy w dużym kodzie źródłowym wydaje się wysoce nieefektywne.
Czy więc zamiast posiadania adresu tablicy zapisanego i pobranego za pomocą wskaźnika, złą praktyką programistyczną jest bezpośrednie używanie adresu tablicy, jak pokazano powyżej?
printf "[%d][%d] = %d\n", k1, k2, array[k1] [k2]));
pozwoliłoby uniknąć arytmetyki wskaźnika i jest łatwiejsze do zrozumienia.