Ein paar Pointerfragen



  • Hallo, ich hab mir immer eingebildet mich schon relativ gut mit Pointern auszukennen, bis ich auf immer mehr Fragen gestoßen bin..hoffe ihr könnt mir helfen, bin für jede Hilfe dankbar!

    Also erste Frage zu diesem Programm:

    int main()  
    {  
    	void* pointer;
    	int x=153;
    	pointer=&x;
    	cout<< *static_cast<int*>(pointer) << endl;
    }
    

    1,Warum muss ich bei der Zuweisung "pointer=&x" nicht auf (int*) casten, ich dachte void pointer müssten immer wissen auf welchen Typ sie zeigen?
    2, Was bedeutet *static_cast ...ohne dem "*" Operator gibt cout nämlich nur eine Adresse aus!

    Noch eine Frage: Wenn ich zb. habe:

    char* a = "Test";
    

    Warum gibt mir cout << a; den gesamten String (bzw. char array) aus, während
    cout << *a; nur den ersten Buchstaben ausgibt? Beim "int" Typ funktioniert alles wie vorausgesehen, ohne den "*" Operator wird die Adresse ausgegeben, mit ihm der Wert.

    So noch eine letzte Frage, wenn ich einen

    void** x=NULL;
    

    Poiter habe, wie würde ich damit umgehen, x Werte zuweisen und ausgeben? Ka, aber ich bekomme beim besten Wille nichts Arbeitendes mit einem doppelten Pointer hin.
    Bsp illegal indirection

    void** x=0;
    	int a=1561;
    	x=(void**)&a;
    	cout<< **x << endl;
    


  • Falsches Forum: korrekt wäre C++.
    Dein Beitrag wird sicher bald verschoben.
    Simon


Anmelden zum Antworten