Ich habe gerade angefangen, C zu lernen, und um das Verständnis von Zeigern und Arrays zu verbessern, habe ich versucht, auf die Elemente eines Arrays zu verweisen, ohne überhaupt einen Zeiger zu erstellen:
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));
}
}
Der gesamte Code wird kompiliert und funktioniert einwandfrei.
Ich stelle mir vor, für jedes einzelne Array in einem großen Quellcode einen Zeiger erstellen zu müssen, ist höchst ineffizient.
Ist es also eine schlechte Programmierpraxis, die Adresse des Arrays direkt zu verwenden, anstatt die Adresse eines Arrays mit einem Zeiger speichern und abrufen zu lassen, wie oben gezeigt?
printf "[%d][%d] = %d\n", k1, k2, array[k1] [k2]));
würde die Zeigerarithmik umgehen und ist einfacher zu verstehen.