Announcement

Collapse
No announcement yet.

Programmieren Felder und Zeiger, hilfe..

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new 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
    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, 15:11.

    Comment


    • #3
      ja danke..nur was bedeutet das *(ar+2)
      bzw. wie komm ich dadurch auf das T?

      Comment


      • #4
        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;

        Comment

        Working...
        X