In der C-Sprache ist die Speicherreihenfolge zweidimensionaler Arrays im Speicher zeilenweise. Das zweidimensionale Array A[m][n] ist ein zweidimensionales Array mit m Zeilen und n Spalten a[p][q] ist das erste Element von A, das heißt, die Zeilenindizes des zweidimensionalen Arrays reichen von p bis [m+p] und die Spaltenindizes reichen von q bis [n+q].
In der Sprache C werden zweidimensionale Array-Elemente Zeile für Zeile im Speicher gespeichert.
Zweidimensionales Array A[m][n], ein zweidimensionales Array mit m Zeilen und n Spalten. Sei a[p][q] das erste Element von A, das heißt, die Zeilenindizes des zweidimensionalen Arrays reichen von p bis m+p und die Spaltenindizes von q bis n+q „Zeilen-Hauptreihenfolge“, dann wird die Adresse des Elements a[i][j] wie folgt berechnet:
LOC(a[i][j]) = LOC(a[p][q]) + ((i − p) * n + (j − q)) * t;
Bei Speicherung in „Spalten-Hauptreihenfolge“ wird die Adresse wie folgt berechnet:
LOC(a[i][j]) = LOC(a[p][q]) + ((j − q) * m + (i − p)) * t;
Die Mindestanzahl an Zellen, die zum Speichern des Arrays erforderlich sind, beträgt (m-p+1) * (n-q+1) * t
Bytes.
Erweiterte Informationen:
Dynamisches zweidimensionales C++-Array:
Nehmen Sie Kunststoff als Beispiel, Zeile ist die Anzahl der Zeilen, Spalte ist die Anzahl der Spalten
int **data;
//Speicherzeiger des zweidimensionalen Arrays, Zeiger auf Zeiger. Die Adresse von
date=x[0][0]
wird auf diese Weise besser gekennzeichnet. Da das Ergebnis von sizeof(date)
4 ist, ist es unmöglich, ein zweidimensionales Array zu speichern.
//以下实现如何申请内存 data = new int *[row]; for (int k = 0; k < row; k++) { data[k] = new int[col]; }
Empfohlenes Tutorial: „c Video-Tutorial“
Das obige ist der detaillierte Inhalt vonIn welcher Reihenfolge werden zweidimensionale Arrays in der C-Sprache im Speicher gespeichert?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!