Heim >Backend-Entwicklung >C#.Net-Tutorial >In welcher Reihenfolge werden zweidimensionale Arrays in der C-Sprache im Speicher gespeichert?

In welcher Reihenfolge werden zweidimensionale Arrays in der C-Sprache im Speicher gespeichert?

coldplay.xixi
coldplay.xixiOriginal
2020-06-28 10:33:078462Durchsuche

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 welcher Reihenfolge werden zweidimensionale Arrays in der C-Sprache im Speicher gespeichert?

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];
}
rrree

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn