next up previous contents index
Next: Abgeleitete Typen Up: Grundtypen und abgeleitete Typen Previous: Die Grundtypen von C++

Konstanten

            Es gibt

Integer-Konstanten

 
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)

Fließkomma-Konstanten

  Form: 1.2 .23 44. 1.2e10 456.789e-19

Typ: stets double außer wenn mit Suffix f versehen wie

     3.145159f

Textzeichen-Konstanten

  Form: 'a' '7'

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)

Strings

  Form: "this is a string\n"

Typ: char-Array angemessener Länge.

Ein String endet mit '\0':

tex2html_wrap_inline5173 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.";

Benannte Konstanten

    Deklaration mit dem Schlüsselwort const:

    const float betrag = 3.60;

Eine Konstante darf nicht verändert werden.

tex2html_wrap_inline5173 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

Aufzählungen:    

    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.


next up previous contents index
Next: Abgeleitete Typen Up: Grundtypen und abgeleitete Typen Previous: Die Grundtypen von C++

Peter Pfahler, 1997