Heim > Artikel > Backend-Entwicklung > In welcher Reihenfolge werden zweidimensionale Array-Elemente in der C-Sprache im Speicher gespeichert?
In der Sprache C werden zweidimensionale Array-Elemente Zeile für Zeile im Speicher gespeichert. Das zweidimensionale Array A[m][n] ist ein zweidimensionales Array mit m Zeilen und n Spalten. Unter der Annahme, dass a[p][q] das erste Element von A ist, kann es gemäß der „Zeilenpriorität“ gespeichert werden " oder „Column Major“-Speicher wird verwendet, um die Adresse des Elements a[i][j] zu berechnen.
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 „Reihenhauptordnung“, 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; Wenn
in „Spalten-Hauptreihenfolge“ gespeichert wird, wird die Adresse wie folgt berechnet:
LOC( a[i][j]) = LOC(a[p ][q]) + ((j − q) * m + (i − p)) * t;
Die minimale Anzahl erforderlicher Einheiten Zum Speichern dieses Arrays sind (m-p+1) * (n- q+1) * t Bytes erforderlich.
Erweiterte Informationen
C++ dynamisches zweidimensionales Array:
Nehmen Sie Kunststoff als Beispiel, Zeile ist die Anzahl der Zeilen, col ist die Anzahl der Spalten
int **data;//Speicherzeiger des zweidimensionalen Arrays (Zeiger auf Zeiger. Die Adresse von date=x[0][0]. Dies Weil sizeof Das (Datums-)Ergebnis ist 4 und es ist unmöglich, ein zweidimensionales Array zu speichern.
//以下实现如何申请内存 data = new int *[row]; for (int k = 0; k < row; k++) { data[k] = new int[col]; } //赋值跟普通二维数组一样 例如 data[0][0] = 5; //将二维数组1行1列(C++中称为0行0列)赋值为5 //删除内存 for (int i = 0 ; i < row; ++i) { delete [] data[i]; //此处的[]不可省略 } delete [] data;
Empfohlenes Tutorial: „C-Sprache“
Das obige ist der detaillierte Inhalt vonIn welcher Reihenfolge werden zweidimensionale Array-Elemente in der C-Sprache im Speicher gespeichert?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!