2016-07-09 14 views
2

Können diese 2 Arrays miteinander kommunizieren oder müssen sie vom selben Typ sein, d. H. [,] Kann nur mit anderen [,] Arrays kommunizieren.Gibt es einen funktionalen Unterschied zwischen einem [,] 2d-Array und einem [] []?

Oder wenn ich hatte:

char [,] 2darray =new char [2,2]; 

Könnte es es Werte an eine Methode übergeben, die sich wie ein 2D-Array hatte:

Shirts(char [][] sizes) 

Dies ist Pseudo zum Beispiel verwendete Code nur im wirklich nur interessiert zu wissen, was die Unterschiede in dieser Art von Array-Anruf sind, wenn sie vorhanden sind und ob sie miteinander sprechen können oder nicht.

Antwort

4

Diese beiden Typen sind unterschiedlich. Sie haben unterschiedliche Darstellungen im Gedächtnis, so dass sie nicht austauschbar sind.

Ein 2D-Array char m[,] muss Zeilen mit identischer Größe haben und alle Zeilen müssen vorhanden sein. Im Gegensatz dazu darf ein Array von Arrays char m[][] Zeilen variabler Länge oder sogar einige fehlende Zeilen haben.

Ein Element eines Arrays von Arrays ist ein Array, das Sie als separate Entität weitergeben können. Ein 2D-Array ist eine einzelne Einheit; Sein Indexoperator benötigt einen Index für jede Dimension. Mit anderen Worten, können Sie diese

char m[][] ... 
char r[] = m[2]; // Allowed 

zu tun, aber Sie diese

char m[,] ... 
char r[] = m[2]; // Does not compile 
nicht tun können
+1

So eine davon ist ein 2D-Array und ist ein Array von Arrays? Könnten Sie bitte ein bisschen mehr ins Detail gehen, ich denke ich verstehe, was Sie sagen, aber ich bin mir nicht ganz sicher. – Spooler

Verwandte Themen