tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
1
ZUGRIFFE
458
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Kleiner Wicht Kleiner Wicht ist offline Mitglied Silber
    Registriert seit
    Jan 2005
    Beiträge
    60
    Hab mal 2 Beispiele dargestellt.

    Meine Frage dazu wäre:
    1.Worin besteht der Unterschied ?

    Beispiel 1
    Code :
    1
    2
    3
    4
    5
    6
    
      AnsiString RW;
      AnsiString *zeiger;
      zeiger = &RW;
      
      *zeiger = "hallo";
      Label1->Caption = RW;

    Beispiel 2
    Code :
    1
    2
    3
    4
    
      AnsiString RW;
      RW = "hallo";
      
      Label1->Caption = RW;
    Geändert von Kleiner Wicht (22.09.05 um 03:31 Uhr)
     

  2. #2
    It's just me It's just me ist offline Grünschnabel
    Registriert seit
    Mar 2007
    Beiträge
    2
    Beim BSP.1 Definierst du genau so wie bei 2. eine "AnsiString" Variable
    Beim 1. erstellst du dann jedoch einen Zeiger, der nur die ihm zugewiesene Adresse speichert, weist ihm die Adresse der Variable zu, und veränderst dann indirekt über den Zeiger den Wert von der Variable und gibst diese Variable dann aus.
    Bei 2. definierst du die Variable direkt und gibst sie danach aus...

    Netto kann man sagen, dass es in diesem Beispiel nur den Unterschied gibt, dass du die 4? Byte des Zeigers auch noch beschrieben hast.

    Bei diesen Beispielen, ist es (wie meistens) nicht sinnvoll Zeiger zu brauchen, weil mann dann der gefahr ausgesetzt ist, dass man mithilfe des Zeigers unabsichtlich die Daten der Zielvariable überschreibt.

    Der eizige Fall, in dem ich bisher Zeiger benutzt habe, um Variabeln zu definieren, ist bei Unterfunktionen, welche mehrere Werte zurükgeben:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    
     
    void unterfunktion(int *a, int *b, Ansistring *c)
    {
       *a=2* (*a);
       *b=2*(*b)+(*a);
       *c="HaaHaaHaa!";
    }
     
     
     
    //Hauptfunktion:
     
    __fastcall Form1......Button1Click(......)
    {
       
       int x = 3, y = 4;
       AnsiString z = "Los Gehts!";
     
       //Werte:   x=3   y=4   z=Los Gehts!
     
       unterfunktion(&x,&y,&z);
     
        //Werte:   x=6   y=11   z=HaaHaaHaa!
     
    }

    Alles klar?
     

Ähnliche Themen

  1. Zeiger auf Zeiger Problem
    Von callis2 im Forum C/C++
    Antworten: 2
    Letzter Beitrag: 31.01.09, 22:45
  2. Antworten: 0
    Letzter Beitrag: 27.12.07, 16:08
  3. Zeiger auf Zeiger nicht verstanden
    Von Razorhawk im Forum C/C++
    Antworten: 6
    Letzter Beitrag: 17.10.05, 12:24
  4. Zeiger !
    Von cHillberT im Forum C/C++
    Antworten: 16
    Letzter Beitrag: 07.10.04, 18:39
  5. Antworten: 4
    Letzter Beitrag: 08.09.04, 05:28