Algorithmen und Datenstrukturen in Chome Algorithmen und Datenstrukturen in C: Felder und Zeichenketten Prof. Dr. Uwe Schmidt FH Wedel

Felder und Zeichenketten

weiter

weiter

Felder

Deklaration
von Variablen
 
/* eine Feldvariable mit 25 Elementen */
int a[25];
weiter
besser
#define LEN 25
int a[LEN];
weiter
Indizierter Zufriff
int i;
/* lesend */
... a[i] ... ;
/* schreibend */
a[i] = ... ;
weiter
merke
Indizierung ab 0
merke
Legale Indizes: 0,1,...,LEN-1
weiter
Indexüberprüfung
#include <assert.h>
int i;
assert(i >= 0 && i < LEN);
... a[i] ...
weiter
Verarbeitung
aller Elemente eines Feldes
 
1 int i;
2
3 for (i = 0; i < LEN; ++i) {
4 ... a[i] ...;
5 }
weiter
oder
1 int i;
2
3 i = 0;
4 while (i < LEN) {
5 ... a[i] ...;
6 i = i + 1;
7 }
weiter
Felder als Parameter
2 Parameter notwendig
  • Länge des Feldes
  • Zeiger auf das erste Element des Feldes
weiter
Aufruf
... f(a, LEN) ...
weiter
Funktionsdeklaration
1 ... f(int x[], int xLen) {
2 int i;
3 for (i = 0; i < xLen, ++i) {
4 ... x[i] ...;
5 }
6 }
weiter
Beispiel
1 int sum(int x[], int xLen) {
2 int i;
3 int res = 0;
4
5 for (i = 0; i < xLen; ++i) {
6 res = res + x[i];
7 }
8 return
9 res;
10 }
11
12
13 int a[3];
14 a[0] = 2;
15 a[1] = 20;
16 a[2] = 200;
17
18 ... sum(a,3) ...;
weiter

weiter

Zeichenketten

Strings
Typ
char *
Deklaration
von Variablen und Initialisierung
 
char * s = "ein Text";
weiter
Parameter
Zeichenketten als Parameter
 
... f(char * s) {
...
}
Ausgabe
von Zeichenketten
 
char * s;
...
printf(s); /* Vorsicht */
printf("%s",s);
Literale
für Zeichenketten werden vom Compiler in initialisierte Zeigervariablen umgesetzt.
 
printf("Hello World\n");
char * _hello_ = "Hello World\n";
printf(_hello_);
main
wird vom Betriebssystem mit zwei Parametern aufgerufen:
  1. die Anzahl der Kommandozeilen Argumente
  2. ein Feld von Zeigern auf die Strings für die Kommandozeilen Argumente

Letzte Änderung: 11.01.2007
© Prof. Dr. Uwe Schmidt
Prof. Dr. Uwe Schmidt FH Wedel