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

coldplay.xixi
Freigeben: 2020-06-28 10:33:07
Original
8358 Leute haben es durchsucht

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;
Nach dem Login kopieren

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;
Nach dem Login kopieren

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];
}
Nach dem Login kopieren
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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage