Programmcode mit Array und Zeigerarithmetik verstehen - RoeHH/M411 GitHub Wiki

#include <stdio.h>
#include <stdlib.h>
int main()
{
    // Variablen deklarieren und initialisieren
    int Zahl = 10;                                          // Adresse von Zahl = 1250
    char Zeichen = 'A';                                     // Adresse von Zeichen = 1480
    short Liste[8] = {1, 2, 4, 8, 16, 32, 64, 128};         // Adresse von Liste = 2870
    double Werte[2] = {0.00, 5.9};                          // Adresse von Werte = 3890

    // Pointervariablen deklarieren und initialisieren
    int *pZahl = &Zahl;                                     // Adresse von pZahl = 8000
    char *pZeichen = &Zeichen;                              // Adressevon pZeichen = 8500
    short *pListe = NULL;                                   // Adresse von pListe = 9000
    double *pWert = Werte;                                  // Adresse von pWert = 9500

    // Ausgaben 1
    printf("%i, %i\n", Zahl, pZahl);                        // 10,1250
    printf("%p, %c\n", &Zeichen, *pZeichen);                // 1480, A
    printf("%d, %d\n", *Liste, Liste[1 + 2] + Liste[0]);    //1, 9
    printf("%p, %lf\n", &(++pWert), Werte[1]);              //9500, 5.9

    // Veränderungen
    Zahl = (*pZahl)++;
    Zeichen++;                                              // A -> B
    pListe = &Liste[1];                                     // pliste = pointer von Liste[1] welcher 2872 ist da shorts 2 bit lang sind
    pListe++;                                               // pListe + 2 da short
    *pWert = --Werte[0] + 5;                                //pWert -> 4.0

    // Ausgaben 2
    printf ("%i, %i\n", Zahl, *pZahl);                      //11,11
    printf("%c, %p\n", Zeichen, pZeichen);                  //B, 1480
    printf("%d, %d\n", *pListe, &Liste[3 + 2]);             //2874, (pointer von Liste[5] == 2870 + 2bite * 5elemente) 2880
    printf("%lf, %lf\n", Werte[0], Werte[1]);               //-1, 4
    system("pause");
    return 0;
}
⚠️ **GitHub.com Fallback** ⚠️