3. C-Datentypen
3. C-Datentypen
3. C-Datentypen
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
Erstellt von Mario Mayr (Quelle leider vergessen)<br />
Zeichenkonstanten<br />
Zeichenkonstanten werden in Apostrophe gesetzt. Nichtdruckbare Zeiche oder solche, die<br />
nicht auf der Tastatur verfügbar sind, werden als Escapesequenzen angegeben.<br />
'a'<br />
'\n'<br />
'\t'<br />
'\x41'<br />
Intern werden Zeichen als int-Werte verwaltet, so daß 'a' und 97 eigentlich dasselbe<br />
darstellt:<br />
#include <br />
int main(void)<br />
{<br />
printf("%c ist in ASCII: %d\n", 'a', 'a');<br />
printf("%c ist wirklich in ASCII: %d\n", 97, 97);<br />
return 0;<br />
}<br />
Datentypumwandlungen (wer es zum weiteren Verständnis braucht !?!)<br />
<strong>Datentypen</strong> können in C im Gegensatz zu anderen Programmiersprachen ineinander<br />
umgewandelt werden. In C werden Typumwandlungen entweder implizit oder durch ein<br />
spezielles Konstrukt explizit durchgeführt. In einem gemischten Ausdruck wird implizit eine<br />
Typumwandlung so vorgenommen, daß versucht wird auf den größten Typ des Ausdruckes zu<br />
konvertieren. Die Typ-Reihenfolge ist dabei:<br />
int < long < unsigned < unsigned long < float < double<br />
Die Regeln für die Umwandlung sind:<br />
• Ist ein Operator long double, wird auch der andere auch in long double umgewandelt.<br />
• Ist ein Operator double, wird auch der andere auch in double umgewandelt.<br />
• Ist ein Operator float, wird auch der andere auch in float umgewandelt.<br />
• Andernfalls werden char und short in int gewandelt.<br />
• Falls dann einer der Operanden long ist, wird der andere in long geändert.<br />
Wird der Ausdruck einer Variablen zugewiesen muß vielleicht noch eine Konversion<br />
vorgenommen werden. Beispiele von Umwandlungen enstprechender Variablen zeigt<br />
folgende Aufstellung:<br />
char c; int i; long l; float f; double d;<br />
c - i Umwandlung int<br />
d = c - i Umwandlung int, Zuweisung an double<br />
l * 2.0 - i Umwandlung double<br />
c = l * 2.0 - i Umwandlung double, Zuweisung an char<br />
f * d Umwandlung double<br />
l = f * d Umwandlung double, Zuweisung an long<br />
1 + <strong>3.</strong>0 Umwandlung double<br />
'a' + 1 Umwandlung int<br />
i = i / d Umwandlung double, Zuweisung an int