Arrays (Arrays)
Ein Array oder ein Array ist eine Sammlung von Elementen, die Würfel des gleichen Typs durch einen Index gekennzeichnet sind. Elemente beginnend mit Index O. Arrays können jeden Datentyp in C deklarieren
Deklaration von Arrays
NombreTipo NombreVariable [Nr. Elemente];
ein eindimensionales Array wird oft als ein Vektor. <br/> Beispiele für eindimensionale Arrays oder Vektor:
aufgeführt Int [5]; / / Array mit fünf Ganzzahlen Char Namen [10]; / / array 10 Zeichen
Speicherzuordnung
für ein Array reservierten Speicher richtet sich nach der Art der Daten und die Anzahl der Elemente in einem Array.
< p Style = "Padding-Left: 30px;"">< Em > Bytes Bytes (Typ) = x Nr." Elemente <br/>
mit dem vorherigen Beispiel (Liste Int [5];) Anzahl der Elemente e:
Ele
ichNT (4 Byte) x 5 = 20 Byte
Auslastung < /starke >
für die Arbeit mit Arrays müssen gelten die gleichen Konzepte für den Rest der Variablen.
List [0] = 300; / / Zuweisung de eine Konstante auf ein Element der Liste Vektor [1] = 50; Liste [2] = List [0] + Liste [1]; / / Summe der Elemente, das Ergebnis wird in einem anderen Element des Arrays gespeichert
Declaracion und asignacion
Int vector1 [] = {- 200, - 100, 0, 100, 200}; / / Array vector1 Integer-Typ mit 5 Teile Int ein [3] = {5, 10, 15}; / / Array von Integer-Typ mit 5 Teile Char Cad [5] = {'a', 'b', 'c', ', 'e'}; / / array mit 5 Elementen ganze Char vector1
die folgenden drei Definitionen sind Equivalente:
Char [5] Gruß = "Hello"; char [] Gruß = "Hallo";
Gruß [5] Char = {'h', ' o ', 'l', 'a', '\0'};
wann ist eine Aussage gemacht und gleichzeitige Zuweisung Dimension weggelassen werden, da der Compiler automatisch bestimmt, kann basierend auf der Anzahl von Elementen, ob die Dimension die Anzahl der Elemente in der Deklaration entsprechen muss.
<Br / > Arrays Multimensionales
NombreTipo NombreVariable [n1] [n2] [Nx]; </em >
sind diese Arrays von mehr als eine Dimension ein Array kann mehrere Dimensionen haben, sondern ein Array mit mehr als 2 oder 3 Dimensionen ist nicht betriebsbereit. eine zweidimensionale Matrix wird oft als Tabelle.
Int Tabelle [3] [5]; / / Array int 15 Elemente (60 Byte) ArrayMulti [4] [10] [3]; / / Array von Ganzzahlen 4 x 10 x 3 Float Holz [2] [3]; / / Array von 2 X 3 = 6 echte Elemente
Utilizacion
Tabelle [0] [0] = 100; / / Zuweisung de ist ein konstantes Element [0] [0] x = Tabelle [0] [0] + [0] Tabelle [1]; / / Summe der Elemente, das Ergebnis wird in der Variablen X gespeichert
Anweisung und Asignacion
Int Tabelle [2] [3] = {{1, 2, 3}, {3, 4, 5}}; / / Matrixtabelle von zwei Dimensionen vom Typ Integer mit 6 Elementen
<br/> Überlegungen
Int t:Microsoft.WindowsMobile.DirectX.Vector2 [5]; / / Deklaration eines Vektors von 5 aus 5 items... t:Microsoft.WindowsMobile.DirectX.Vector2 [5] = 10; / / Zuweisung zul Punkt 6 (t:Microsoft.WindowsMobile.DirectX.Vector2 [5])
• im vorherigen Fall ein Fehler beim Schreiben in ein Element, das nicht vorhanden ist, tritt beim Zugriff auf die t:Microsoft.WindowsMobile.DirectX.Vector2 mit 5 (Punkt 6) nicht vorhandenen Index. als Ergebnis dieser Aktion ist über schreibt an einem unbestimmten Ort, der nicht für die betreffende Variable reserviert ist Dies kann Störungen im Funktionieren des Programms. auch wenn der Compiler nicht den Fehler meldet, da die Syntax korrekt ist unbestimmt, es verursacht einen Fehler, die schwerwiegende Folgen.
• das erste Element eines Arrays hat den Index 0 und das Letzte Element Dimension-1.
• Compiler hat immer zu wissen, die Anzahl der Elemente reservieren Speicher notwendig. kann nicht deklarieren Sie ein Array mit einer Variablen um die Dimension. in C++ um die dimension eines Arrays zur Laufzeit anzugeben oder mit ein dynamisches Array sollte gebrauchte Zugriffsverfahren dynamisch Daten.
< Pre-Klasse ="Sh_c" > Int Dimension = 10; Int vertor3 [Abmessungen]; / / Fehler nicht erlaubt
• Variablen haben die gleiche Behandlung wie die temporären Variablen, entstehen auf dem Stapel, so ist es bequem, die Arbeit mit Arrays von kleinen Abmessungen. wenn es notwendig ist, mit großen Datenmengen arbeiten und Arrays große sind Arbeiten auf dem Heap mit dynamischen Datenzugriffsverfahren, auf diese Weise können wir die Arrays dimensionable haben muss.
• Arrays nicht als Paramet übergeben werdenRos-Funktionen, haben mit Zeigern und übergeben von Parametern durch Verweis.
• die Funktionen können keine Arrays zurückgeben.
• Zuordnung ist nicht zulässig (e)Wischen Arrays. um ein Array zu einem anderen zuzuweisen, müssen Sie schreiben Code zum Ausführen von Aufgaben Elements Element.
<br/> Ejemplo:
1.-die natürliche Art und Weise der Arbeit mit Arrays ist zu Variablen in den Indizes. verwenden Sie das folgende Beispiel erstellt einen 10-Element-Vektor und füllt sie mit Zahlen mit dem Managementaufsteigend von 5.
Int vector1 [10]; / / Deklaration ein Array mit 10 Elementen Int = 5; / / Variable Daten mit dem Initialwert für (Int n = 0;) (n < 10; n ++) {/ / von der 1. Iteration}Index von 0 bis 9 vector1 [n] = Daten; / / Asignacio{n des Bezugs auf das Element der Vektor-Daten-+= 1; / / Daten erhöhen}
2.-Füllung einen Vektor mit Kleinbuchstaben ASCII Sortieren Aufsteigend mit nach Hause in 'a'.
Char vector1 [5]; / / Deklaration der 5 Elemente eines Vektors char Brief = 'a'; / / Variable Daten mit dem Initialwert für (Int n = 0;) n < 5; n ++) {/ / von der 1. Iteration}Index von 0 bis 4 Buchstaben += n; / / Brief vector1 zu erhöhen [n] =; / / Asignacion des Bezugs auf das Element des Vektors}
3.-Erstellen Sie eine Kopie eines Vektors der Integer-Typ in einen anderen alle Elemente mit 5 multipliziert.
Int vector1 [10] = {2,15,30,45,56,-45,0,7,-23,150}; / / Vector mit 10 Elementen mit Zuweisung Int t:Microsoft.WindowsMobile.DirectX.Vector2 [10]; / / Deklaration ein Array mit 10 Elementen für (Int n = 0; n < 10; n++) {/ / Iteration von index 0 bis 9 t:Microsoft.WindowsMobile.DirectX.Vector2 [n] = vector1 [n] * 5; / / mapping der Daten zum Produkt des Elements t:Microsoft.WindowsMobile.DirectX.Vector2 vector1 * 5}