Eine Einführung in die Programmiersprache C und ... - C /C++ Ecke
Eine Einführung in die Programmiersprache C und ... - C /C++ Ecke
Eine Einführung in die Programmiersprache C und ... - C /C++ Ecke
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
<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 11.09.2008 13:04:00 Letzte Änderung am: 11. September 2008 Version 2.4, I. Oesch 51/147