Arrays (Felder/Vektoren)

Ähnliche Dokumente
Typ : void* aktuelle Parameter Pointer von beliebigem Typ

Grundlagen der Programmierung in C++ Arrays und Strings, Teil 1

Übungspaket 29 Dynamische Speicherverwaltung: malloc() und free()

6. Bearbeitung von Strings in C Bearbeitung von Strings in C

Programmieren in C. Funktionen mit Zeigern und Adressen. Prof. Dr. Nikolaus Wulff

Übungspaket 23 Mehrdimensionale Arrays

Übungspaket 14 Eindimensionale Arrays

C allgemein. C wurde unter und für Unix entwickelt. Vorläufer sind BCPL und B.

7 Funktionen. 7.1 Definition. Prototyp-Syntax: {Speicherklasse} {Typ} Name ({formale Parameter});

Elementare Datentypen in C++

Vorkurs C++ Programmierung

GI Vektoren

+ C - Array (Vektoren, Felder)

Übungspaket 23 Mehrdimensionale Arrays

Zusammenfassung des Handzettels für Programmieren in C

Die Programmiersprache C

Variablen. Deklaration: «Datentyp» «Variablenname» Datentyp bestimmt Größe in Bytes: sizeof Beispiel: long int v; Größe: 4 Bytes

2. Programmierung in C

4 ZEICHEN UND ZEICHENKETTEN

Zusammengehörige Daten struct. Strukturierte Datentypen und Funktionszeiger. Zugriff auf struct-elemente. Variablendeklarationen mit struct

2. Programmierung in C

8. Referenzen und Zeiger

Einführung in die Programmiersprache C

Zeichendarstellung. Zeichen sind Zahlen (in C) Zeichen und switch

1. Referenzdatentypen: Felder und Strings. Referenz- vs. einfache Datentypen. Rückblick: Einfache Datentypen (1) 4711 r

C/C++-Programmierung

Dr. Monika Meiler. Inhalt

Inhalt. Peter Sobe 63. Felder in C

C++ Notnagel. Ziel, Inhalt. Programmieren in C++

6. Zeiger Allgemeines Definition eines Zeigers

Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny

Klausur C++ #1 Jahr: 2001; Dozent: Dipl.Ing. Sorber

Einführung in die Programmierung Arrays, Zeiger, Strings. Arvid Terzibaschian

Inhalt. 4.5 Arbeit mit Zeigern (engl. Pointer)

Zeiger: Der Adressoperator &

Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny

Im Windows Betriebssystem sind Dateien eindeutig gekennzeichnet durch ihren Pfad, Dateinamen und nach einem Punkt die Dateierweiterung.

Programmierung mit C Felder; Array

Dynamischer Speicher

Pointer. Variablen. Pointer. Ein elementares Beispiel. Pointer in C

5. Abgeleitete Datentypen

Programmieren in C. Eine Einführung in die Programmiersprache C. Prof. Dr. Nikolaus Wulff

Übersicht. Informatik 1 Teil 9: komplexe Datentypen (Strukturen, Enumerationen, Unions)

Strukturierte Datentypen und Funktionszeiger

DAP2 Praktikum Blatt 1

Einstieg in die Informatik mit Java

Zeichenketten (Strings) in C

INE1 Mehr zu Funktionen Ausserdem: Strings (Saiten) Call by value, struct's Call by reference Array Parameter Strings und Stringfunktionen

Deklarationen in C. Prof. Dr. Margarita Esponda

Einstieg in die Informatik mit Java

Einleitung Entwicklung in C Hello-World! Konstrukte in C Zusammenfassung Literatur. Grundlagen von C. Jonas Gresens

FH München, FB 03 FA WS 06/07. Ingenieurinformatik. Name Vorname Matrikelnummer Sem.Gr.: Hörsaal Platz

Einstieg in die Informatik mit Java

Objektorientierte Programmierung OOP Programmieren mit Java

Programmiersprachen Einführung in C. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm

10 Die Programmiersprache C99: Zusammenfassung

Datenfelder (Arrays) Vektoren, Matrizen, Tabellen. Dr. Beatrice Amrhein

Modul 122 VBA Scribt.docx

Grundlagen der Programmierung

C++ Teil 5. Sven Groß. 13. Mai Sven Groß (IGPM, RWTH Aachen) C++ Teil Mai / 18

Grundlagen. Die Komponenten eines C Programms. Das erste Programm

Zeiger, Arrays und Strings in C und C++

C-Pointer (Zeiger, Adressen) vs. C++ Referenzen

Informatik I. Übung 2 : Programmieren in Eclipse. 5. März Daniel Hentzen

Vorlesung 6: Operatoren, Logische Ausdrücke

Felder, Rückblick Mehrdimensionale Felder. Programmieren in C

Speicherklassen (1) Lokale Variablen

C# - Einführung in die Programmiersprache Arrays, Enumeration und Collections. Leibniz Universität IT Services Anja Aue

Modellierung und Programmierung

Wertebereich und Genauigkeit der Zahlendarstellung

Tag 4 Repetitorium Informatik (Java)

Die Sprachstandards. Inhaltsverzeichnis. Lars Thoms. 1 Einleitung Die Sprachstandards Destruktivität... 2

Einstieg in die Informatik mit Java

PROGRAMMIEREN MIT C. }, wird kompiliert mit dem Befehl. (-o steht für output) und ausgeführt mit dem Befehl

C als erste Programmiersprache

C Überlebenstraining

Ein- und Ausgabe mit Dateien

Programmierung mit C Zeiger

Transkript:

Arrays (Felder/Vektoren) Zusammenfassung mehrerer Variablen des gleichen Typs unter einem Namen im Speicher direkt hintereinander abgelegt Definition: Typname Arrayname [Größe]; Beispiel: int ar [5]; Zugriff auf das i-te Array-Element: Arrayname[i] Indizierung beginnt bei 0 for (i = 0; i < 5; i++) ar[i] = i + 1; ar[0] = 1, ar[1] = 2, ar[2] = 3, ar[3] = 4, ar[4] = 5 187

Arrays und Pointer Name des Arrays ist konstanter Zeiger auf das erste Array-Element ar[0] ar[1] ar[2] ar[3] ar[4] ar &ar[2] ar[i] ist äquivalent zu *(ar+i) *ar *(ar+1) *(ar+2) *(ar+3) *(ar+4) ar Sei ptr ein Pointer. Dann ist *(ptr + i) äquivalent zu ptr[i]. 188

Mehrdimensionale Arrays Verwendung mehrfacher eckiger Klammern Elemente sind selbst Arrays (eine Dimension niedriger) Beispiel: int ar [3][4]; ar[0][0] ar[0][1] ar[0][2] ar[0][3] ar[1][0] ar[1][1] ar[1][2] ar[1][3] ar[2][0] ar[2][1] ar[2][2] ar[2][3] 189

Initialisierungslisten Elemente in geschweiften Klammern, durch Komma getrennt nur direkt bei der Definition int ar [4] = {1, 2, 3, 4}; Größe in eckigen Klammern darf fehlen (offenes Array) int ar [] = {1, 2, 3, 4}; fehlende Elemente werden mit 0 aufgefüllt: int ar [4] = {1, 2}; ar[0]=1; ar[1]=2; ar[2]=0; ar[3]=0; mehrdimensional: Initialisierungsliste von Initialisierungslisten 190

Zeichenketten (Strings) sind char-arrays mit Nullzeichen \0 als Markierung des Stringendes Viele String-Funktionen benötigen das Nullzeichen. bei Definition des Arrays einplanen! char vorname [6] = { N, a, d, j, a, \0 }; Initialisierung mit konstanter Zeichenkette: char vorname [6] = "Nadja"; automatisches Anfügen des Nullzeichens konstante Zeichenketten sind ein Ausdruck: Rückgabewert ist Pointer auf das erste Zeichen 191

Übergabe und Ausgabe von Arrays und Zeichenketten Übergabe eindimensionaler Arrays an Funktionen: formaler Parameter als offenes Array oder Pointer auf den Komponententyp Anwendung bei Übergabe von Zeichenketten (char-array) Ausgabe von Zeichenketten mit printf(): printf() erhält Pointer auf erstes Zeichen Ausgabe aller Zeichen bis Pointer auf \0 zeigt 192

Übergabe einer Stringvariable (Pointer auf char-array) an printf(): Formatelement %s Beispiel: char * pointer = "hello"; printf("\n%s", pointer); char-array: gespeicherter String kann verändert werden Array-Name ist konstanter Pointer auf das erste Zeichen Stringvariable vom Typ char * auf konstante Zeichenkette: Compiler speichert konstante Zeichenkette selbstständig Zeichenkette kann nicht verändert werden Pointer kann neue Adresse zugewiesen bekommen 193

Standardfunktionen zur Stringverarbeitung in Header-Datei <string.h> definiert char * strcpy (char * dest, const char * src); Kopieren char * strcat (char * dest, const char * src); Anhängen int strcmp (const char * s1, const char * s2); Vergleichen size t strlen (const char * s); Länge Arbeiten bis zum Nullzeichen \0 size t vordefinierter Datentyp als Rückgabetyp des sizeof-operator (ist meist unsigned int oder unsigned long) const char * Name Array-Elemente konstant char * const Name Pointer konstant 194

mem-funktionen (memcpy(), memcmp() usw.) arbeiten mit Paramentern vom Typ void * statt char * byteweise Bearbeitung beliebeger Speicherobjekte erwarten kein Nullzeichen; Anzahl der Bytes als weiterer Parameter Beispiel: void * memcpy (void * dest, void * src, size t n); 195

Standardfunktionen zur Ein- und Ausgabe definiert in <stdio.h> int printf (const char * format,...); int puts (const char * s); schreibt übergebenen String s nach stdout kopiert das Nullzeichen nicht mit char * gets (char * s); liest von stdin (zeilengepuffert) in char-array s hängt das Nullzeichen an übergibt Pointer s 196

int scanf (const char * format,...); Argumente nach dem Formatstring sind Adressen von Variablen, Speichern der Werte aus stdin auf diesen Adressen Anzahl und Typen der Formatelemente müssen zu den adressierten Variablen passen (sonst unbestimmtes Verhalten) Beispiel: int zahl; printf ("\neingabe: "); scanf("%d", &zahl); printf ("\nder Wert %d wurde eingelesen.\n", zahl); 197

andere Zeichen als Formatelemente im Formatstring (auch \n ): scanf() liest diese Zeichen und verwirft sie liest scanf() ein anderes Zeichen, wird es in stdin zurückgestellt float t; printf("temperatur im Format xx C: "); scanf("%f C", &t); t = (9. * t) / 5. + 32.; printf("\ntemperatur in Fahrenheit: %f F", t); Kein Newline-Zeichen \n im Formatstring von scanf()! 198

Parameterübergabe beim Programmaufruf cp src file dest file zwei Varianten der main-funktion: int main() parameterlos int main(int argc, char * argv[]) zwei Parameter argc (argument counter): Anzahl der Argumente argv (argument vector): Vektor (Array) der Argumente Argumente sind Strings Array von char-arrays Array von Pointern auf char erstes Element von argv (argv[0]): Programmname 199

argv argv[0] argv[1] "cp" "src file" argv[2] "dest file" argv[3] NULL Übergabe von Zahlen: Typumwandlung String Zahltyp erforderlich Standardfunktionen in <stdlib.h> double atof(const char * nptr); ascii to float int atoi(const char * nptr); ascii to int int atol(const char * nptr); ascii to long 200