Results 1 to 4 of 4

Thread: Programmieren Felder und Zeiger, hilfe..

  1. #1
    Veteran
    Join Date
    Oct 2010
    Posts
    9
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Programmieren Felder und Zeiger, hilfe..

    hallo..
    kann mir bitte jmd helfen den 4. Test aus dem Programmierkurs zu verstehen..
    ich hab nämlich das Kapitel mit feldern und zeigern echt genau durch gearbeitet, nur wenn ich mir dann die Testbeispiele ansehe, hab ich keinen Plan was ich tun soll..

    z.B. #include <iostream>
    using namespace std;
    int main()
    {
    char ar[]="EXTREM";
    cout << ar;
    cout << ar[1];
    cout << ar+3;
    cout << *(ar+2);
    return 0;
    }


    Lösung ist: EXTREMXREMT, aber ich verstehe nicht warum bzw. wie man darauf kommt?!
    bitte, ich bräuchte echt dringend hilfe.

  2. #2
    Baccalaureus
    Join Date
    Aug 2010
    Posts
    569
    Thanks
    37
    Thanked 153 Times in 117 Posts
    Vllt. ist folgende Darstellung hilfreicher für dich:

    Code:
    ...
    char ar[]="EXTREM";
    cout << ar << endl;
    cout << ar[1] << endl;
    cout << ar+3 << endl;
    cout << *(ar+2);
    ...
    Code:
    EXTREM  //gesamtes Array
    X       //Einzelnes Zeichen - Index 1
    REM     //Array ab Index 3
    T       //Einzelnes Zeichen - Index 2
    Du sollst bei der Aufgabe einfach hinschreiben, was die Ausgabe wäre. Ziel ist es zu überprüfen, ob du die verschiedenen Möglichkeiten kennst bzw. verstanden hast.
    Last edited by polymorph10; 31-10-2010 at 15:11.

  3. #3
    Veteran
    Join Date
    Oct 2010
    Posts
    9
    Thanks
    0
    Thanked 0 Times in 0 Posts
    ja danke..nur was bedeutet das *(ar+2)
    bzw. wie komm ich dadurch auf das T?

  4. #4
    Baccalaureus
    Join Date
    Aug 2010
    Posts
    569
    Thanks
    37
    Thanked 153 Times in 117 Posts
    ar ist eine andere Schreibweise für &ar[0], der Anfangsadresse des Arrays.
    Analog dazu ist ar+2 ... &ar[2]

    * ist der Dereferenzierungsoperator, du kriegst also den Wert der an dieser Stelle gespeichert ist.

    Folgendes wäre äquivalent:
    Code:
    char *pointer = &ar[2];
    cout << *pointer;

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •