Zeiger



  • @EinNutzer0 sagte in Zeiger:

    weiter damit zu bes
    bedenke man muss garnix ­čśâ

    ich wollte eigentlich fr├╝her antworten nur habe ich gerade visual studio installiert und das l├Ąsst mich nicht so viele "Fehler machen" also @Wade1234

    void MyZeugs::change(int * c)
    {
    
    	int b = 100;
    	*c = b;
    }
    int x = 12;
    	int* zahl = &x;
    	MyZeugs h;
    	h.change(zahl);
    

    und ich finde das h├Ârt sich ja schon praktisch an zumindest wenn man hardware nah programmiert find ich schon interessant



  • @Abe Bitte keine Zitate verf├Ąlschen. Danke.



  • @Abe Was Du da zeigst ist viel eher ein Einsatzbereich f├╝r Referenzen anstatt f├╝r Zeiger. Zeiger w├╝rde man da nur nehmen, wenn der Parameter optional ist, also auch nullptr sein kann.

    Aber um Dich vom "Zeiger braucht man f├╝r Hardware"-Trip wegzubringen: Schreibe eine verkettete Liste ohne Zeiger.



  • @Abe sagte in Zeiger:

    void MyZeugs::change(int * c)
    {
    
    	int b = 100;
    	*c = b;
    }
    int x = 12;
    	int* zahl = &x;
    	MyZeugs h;
    	h.change(zahl);
    

    und ich finde das h├Ârt sich ja schon praktisch an zumindest wenn man hardware nah programmiert find ich schon interessant

    Hier w├Ąre eine Referenz besser gewesen.

    void MyZeugs::change(int&  c) ...
    
    h.change(x);
    

    In deinem Code m├╝sstest du auf Nullpointer pr├╝fen.



  • Ja gut und was w├Ąre dann ein guts beispiel f├╝r Den einsatz von Zeigern ?



  • @Abe sagte in Zeiger:

    Ja gut und was w├Ąre dann ein guts beispiel f├╝r Den einsatz von Zeigern ?

    @Swordfish sagte in Zeiger:

    Schreibe eine verkettete Liste ohne Zeiger.



  • @manni66 sagte in Zeiger:

    Schreibe eine verkettete Liste ohne Zeiger.

    Ich muss erstmal schaun was damit gemeint ist


  • Mod

    @Abe sagte in Zeiger:

    @manni66 sagte in Zeiger:

    Schreibe eine verkettete Liste ohne Zeiger.

    Ich muss erstmal schaun was damit gemeint ist

    Das ist ein einfaches Beispiel zu dem, was ich oben mit

    @SeppJ sagte in Zeiger:

    Das ist viel elementarer: Die M├Âglichkeit, auf andere Dinge Bezug zu nehmen, ist Grundvoraussetzung, um ├╝berhaupt irgendwelche komplexen Strukturen aufzubauen.

    meinte. Zeiger sind ein Mittel zur Indirektion. Indirektion ist eine grundlegende Voraussetzung, um ├╝berhaupt irgendwie dynamische (d.h. zur Programmlaufzeit auf Ereignisse reagierend) Datenstrukturen aufbauen zu k├Ânnen. Man kann Indirektion auch anders erreichen, aber Zeiger sind ein gutes und g├Ąngiges Mittel daf├╝r, weil sie direkte Unterst├╝tzung durch die Computerhardware haben (eben weil die Macher dieser Hardware wissen, dass sie solch einen Mechanismus brauchen). Eine tiefere Diskussion der Hintergr├╝nde ginge jetzt sehr in die theoretische Informatik. Da dir verkettete Listen nichts sagen, gehe ich davon aus, dass dir das sowieso nicht mehr bringen w├╝rde und spare es mir.



  • @SeppJ sagte in Zeiger:

    Man kann Indirektion auch anders erreichen, aber Zeiger sind ein gutes und g├Ąngiges Mittel daf├╝r, weil sie direkte Unterst├╝tzung durch die Computerhardware haben (eben weil die Macher dieser Hardware wissen, dass sie solch einen Mechanismus brauchen). Eine tiefere Diskussion der Hintergr├╝nde ginge jetzt sehr in die theoretische Informatik.

    So aus neugierde, wie erreicht man Indirektion ohne Zeiger?
    Die einzige Idee die ich spontan habe, w├Ąre den Speicher in einer Tabelle zu indizieren, und dann im Code bzw. im Prozessor mit den ensprechenden Indizes der Tabelle zu arbeiten. Das w├Ąre aber auch nur eine umst├Ąndliche Art und weise direkte Zeiger durch eine Indirektion auf eine Tabelle zu verschleiern.



  • @axels Im Prinzip garnicht. Egal wie es die konkrete Sprache nennt geht es auf Maschinenebene immer um einen Zahlenwert der als Speicheradresse interpretiert wird.


Log in to reply