primitive einsteigerfrage



  • Hab da mal so ne frage wegen pointern
    Hier der Code

    1.:

    int *p_a;
    int b = 5;
    *p_a = &b;       //Fehler: 'int *' kann nicht in 'int' konvertiert werden
    

    2.:

    int b = 5;
    int *p_a = &b;   //funzt
    

    Kann mir jemand erklären woran das liegt.
    Ist doch im prinzip das gleiche, oder?

    Besten Dank

    hispeedsurfer



  • Pointer sind eigentlich ganzzahlige Variablen, d.h. um einem Pointer einen Wert zuzuweisen geht das wie mit jeder anderen Variablen auch

    int *p;
    p = 15;
    

    Die erste Zeile sagt aus, dass p eine Variable ist, die wenn sie als *p verwendet wird, auf einen Integer-Wert zeigt.
    Um also einen Pointer auf eine Variable zeigen zu lassen, sollte das so aussehen:

    int *p;
    int i = 17;
    p = &i;
    

    Initailisierungen sind dabei eine Ausnahme, gleich bei der Deklaration kann eine Adresse zugewiesen werden:

    int i = 23;
    int *p = &i;
    


  • http://www.pronix.de/C/standard_C/ckurs/ckurs55.html und die folgenden 5 Kapitel erfährst du wahrscheinlich alles was du momentan zu Zeigen brauchst (und einiges was du wahrscheinlich nicht brauchst).

    sers

    [ Dieser Beitrag wurde am 20.02.2003 um 19:34 Uhr von Cypher editiert. ]


Anmelden zum Antworten