0 Daumen
913 Aufrufe

Aufgabe:

Schreiben Sie ein Programm mit zwei Variablen unterschiedlicher Typen. Deklarieren Sie für jede Variable einen Pointer und initialisieren Sie ihn mit der jeweiligen Anfangsadresse. Erzeugen Sie zusätzlich einen Pointer, der auf keine Variable zeigt.


Meine Lösung:

#include <stdio.h>


int main(){
int a;
double b;
int ptr1;
int ptr2;
int ptr3;
ptr1 =& a;
ptr2 =& b;
}

Ist meine Lösung richtig? Über Hilfe würde ich mich natürlich freuen! =)

Avatar von

Ich habe das Programm etwas verändert und nicht mehr int ptr2; geschrieben, sondern double ptr2;


Ist das richtig=?

Kannst du das Programm nicht testen durch Laufenlassen?

Eine Erklärung hilft mehr. Ausprobieren ist zu engstirnig gedacht.

1 Antwort

0 Daumen
 
Beste Antwort

Hey,

hier mal ein Teilvorschlag, jetzt musst du nur noch einen weiteren Pointer ganz im Stil meiner Implementierung bauen und einen dritten unbenutzten Pointer...

#include <stdio.h>

int main()
{
    int  var = 20;  /* Variable deklarieren */
    int  *pointer;  /* Pointer Variable deklarieren */
    pointer = &var;  /* speicher die Adresse der Variable "var" in der Pointer Variable*/
   
    printf("Adresse (in pointer Var): %d\n", pointer);
    printf("Adresse (der var Variable): %d\n", &var);
    return 0;
}

Wenn du bsp eine Variable vorher deklarierst, sagen wir int var = 20; dann kannst du dir auch den Wert ausgeben lassen:

#include <stdio.h>

int main()
{
    int  var = 20;  /* Variable deklarieren */
    int  *pointer;  /* Pointer Variable deklarieren */
    pointer = &var;  /* speicher die Adresse der Variable "var" in der Pointer Variable*/
   
    printf("Adresse (in pointer Var): %d\n", pointer);
    printf("Adresse (der var Variable): %d\n", &var);
    printf("Wert (in pointer Variable): %d\n", *pointer); // hier greife ich auf den Wert zu daher das Sternchen
    return 0;
}

Eine mögliche Lösung wäre:

#include <stdio.h>

int main()
{
    int  var1 = 20;  /* Variable deklarieren */
    int  *pointer1;  /* Pointer Variable deklarieren */
    pointer1 = &var1;  /* speicher die Adresse der Variable "var" in der Pointer Variable*/
   
    double var2 = 2.001;
    double *pointer2;
    pointer2 = &var2;
   
    int *pointer3;
   
    printf("Adresse (in pointer1 Var): %d\n", pointer1);
    printf("Adresse (der var1 Variable): %d\n", &var1);
    printf("Wert (in pointer1 Variable): %d\n", *pointer1);
    printf("----------\n");
    printf("Adresse (in pointer2 Var): %d\n", pointer2);
    printf("Adresse (der var2 Variable): %d\n", &var2);
    printf("Wert (in pointer2 Variable): %f\n", *pointer2);
    return 0;
}
Die Deklaration kann man auch abkürzen int *ptr, var;
Avatar von

Ein anderes Problem?

Stell deine Frage

Ähnliche Fragen

Willkommen bei der Stacklounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community