| Dezimal: | 0 1234 1234567890123456789 |
| Oktal: | 012 0123 |
| Hexadezimal: | 0x0 0x2a 0xffff |
Der Typ einer Integer-Konstanten ist abhängig von der Größe des Wertes:
Dezimal-Konstanten: int, sonst long int, sonst unsigned long int.
Hex- und Oktalkonstanten: int, sonst unsigned int, sonst long int, sonst unsigned long int.
Vorzeichenbehaftung und Länge können auch explizit angegeben werden:
void f(int);
void f(long int);
void f(unsigned int);
void f(unsigned long int);
...
f(3) // ruft f(int)
f(3L) // ruft f(long)
f(3U) // ruft f(unsigned int)
f(3LU) // ruft f(unsigned long int)
Form: 1.2 .23 44. 1.2e10 456.789e-19
Typ: stets double außer wenn mit Suffix f versehen wie
3.145159f
Typ: char
| Einige Sonderformen | |
| Zeichen | Schreibweise |
| newline | '\n' |
| horizontal tab | '\t' |
| alert | '\a' |
| backslash | '\\' |
| single quote | '\'' |
| double quote | '"' |
| integer 0 | '\0' |
| octal number | '\ooo' (1-3 Ziffern) |
| hex number | '\xhhh' (1-3 Ziffern) |
Typ: char-Array angemessener Länge.
Ein String endet mit '\0':
sizeof("hallo") == 6
(im Ggs. zu strlen("hallo") == 5)
Übrigens:
"this is not a string
but a syntax error"
aber
char text[] = "So lassen sich auch richtig"
"lange String-Literale angeben.";
Deklaration mit dem Schlüsselwort const:
const float betrag = 3.60;
Eine Konstante darf nicht verändert werden.
Sie muß initialisert werden.
Zuweisung der Adresse einer Konstanten an einen Zeiger ist verboten:
float *fp = &betrag; // FEHLER!
Aber man kann Zeiger auf const-Objekte definieren:
// Zeiger auf Konstantes Float:
const float *fp = &betrag;
*fp = 0.0; // FEHLER!
float xx;
fp = &xx; // OK
Ein konstanter Zeiger auf ein float sieht so aus:
float *const fp = &xx;
fp = 0; // FEHLER!
*fp += 1.5; // OK
enum {rund, eckig, platt};
entspricht
const int rund = 0;
const int eckig = 1;
const int platt = 2;
Eine Aufzählung kann auch benannt werden:
enum see {pader, lippe, diemel, nord};
see ist ein neuer Typ. Implizite Umwandlung nach int ist definiert, aber nicht umgekehrt.
Die Werte von Aufzählungselementen können auch angegeben werden:
enum iomode { out=100, in=2, fast_in,
inout=0x1f, fast_inout=not_impl}
Nicht angegebene Werte sind um 1 größer als ihr Vorgänger, falls sie einen haben, sonst 0;
Aufzählungen können auch lokal in Klassen definiert werden.