21.11.2013 Aufrufe

Eine Einführung in die Programmiersprache C und die Grundlagen ...

Eine Einführung in die Programmiersprache C und die Grundlagen ...

Eine Einführung in die Programmiersprache C und die Grundlagen ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

<strong>E<strong>in</strong>e</strong> <strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>die</strong> Informatik <strong>und</strong> <strong>die</strong> <strong>Programmiersprache</strong> C<br />

13.5 [C99] Direkte Initialisierer<br />

In C99 können <strong>in</strong> der Initialisiererliste Strukturelemente direkt <strong>in</strong>itialisiert werden, dazu<br />

muss das entsprechende Element mit se<strong>in</strong>em Namen <strong>und</strong> e<strong>in</strong>em vorangestellten Punkt angegeben<br />

werden:<br />

struct Datum Geburtstag = { .Jahr = 1944, .Monat = 11, .Tag = 2 };<br />

Auch <strong>die</strong>se Initialisierung darf unvollständig se<strong>in</strong>, nicht explizit <strong>in</strong>itialisierte Werte werden<br />

auf 0 gesetzt.<br />

Die direkte Initialisierung kann mit der gewöhnlichen Initialisierung beliebig gemischt<br />

werden. (Allerd<strong>in</strong>gs kann <strong>die</strong> Übersicht darunter leiden). Nach e<strong>in</strong>er expliziten Zuweisung<br />

wird mit den nachfolgenden Initialisiererwerten nach der soeben <strong>in</strong>itialisierten Variablen<br />

weitergefahren. Es können auch bereits <strong>in</strong>itialisierte Werte wieder überschrieben werden,<br />

auch wenn das nicht besonders s<strong>in</strong>nvoll <strong>und</strong> verständlich ist:<br />

/* Etwas Komplizierter (Komb<strong>in</strong>ation v. Array u. Struktur<strong>in</strong>itialisieren */<br />

struct E<strong>in</strong>trag {<br />

char Name[30];<br />

struct Datum Term<strong>in</strong>e[10];<br />

}<br />

struct E<strong>in</strong>trag Liste[10] = {<br />

[2].Name = "Hans",<br />

[2].Term<strong>in</strong>e[3].Tag = 21,<br />

[2].Term<strong>in</strong>e[3].Monat = 3,<br />

[2].Term<strong>in</strong>e[3].Jahr = 1976,<br />

[0].Name = Fritz,<br />

[0].Term<strong>in</strong>e[0] = {24, 5, 1990},<br />

[4] = {"Urs", 17, 12, 1982, 13, 9, 1987},<br />

"Sepp", 18, 2, 1999, 17, 4, 2004<br />

};<br />

13.6 Die Def<strong>in</strong>ition kann mit der Deklaration zusammengefasst werden<br />

struct Datum {<br />

char Tag;<br />

<strong>in</strong>t Monat;<br />

<strong>in</strong>t Jahr;<br />

} Ostern, Weihnacht = {24, 12, 0}; /* Def<strong>in</strong>ition an Deklaration angehaengt */<br />

/* Def<strong>in</strong>iert <strong>die</strong> 2 Variablen Ostern <strong>und</strong> */<br />

/* Weihnacht, Weihnacht wird <strong>in</strong>itialisiert */<br />

13.7 Zugriff auf <strong>die</strong> Elemente e<strong>in</strong>er Strukturvariablen<br />

E<strong>in</strong> Feld e<strong>in</strong>er Struktur wird mit . (Punkt, = Elementauswahloperator) selektiert.<br />

Strukturvariablenname.Feldname<br />

struct Datum Geburtstag = {24, 12, 0};<br />

...<br />

if (Geburtstag.Jahr == 1976) {<br />

Geburtstag.Monat = 10;<br />

}<br />

Gedruckt am 10.09.2009 14:23:00 Letzte Änderung am: 10. September 2009 Version 2.4.1, I. Oesch 51/147

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!