Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Zeiger, Referenz Verwirrung

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
19.03.2007, 11:25 Uhr
~Starsurfer
Gast


Hallo C++`ler,

ich habe eine Frage bezüglich Zeigeren und Referenzen.


C++:
int  Var;     //Varaibale vom Typ int
int  *pVar; //Zeiger auf Int
Var = 5;    //Var enthält jetzt den Wert 5
pVar = &Var; //pVar enthält jetzt die Adresse von Var
cout << (*pVar) << endl; // 5 wird ausgegeben
(*pVar)++; //Var hat jetzt den Wert 6

//usw..



Das versteh ich so weit ganz gut... nur das Problem stellt jetzt folgendes dar:

Ich habe einen Struct:


C++:
struct TZeichen
{
   char c;
   TZeichen *pNext;
};



aus dem ich eine Zeichenkette erstellen soll... Das jedes Element die Adresse des folgenden enthalten soll ist mir klar.

Wie ich die Kette erstelle ist mir auch klar.

Um die Kette aufzubauen sollen wir jedoch den Funktionkopf verwenden:

C++:
int generate(TZeichen *&pA);


Vollkommen verwirren tut mich das "*&pA".

Ich habe etliche Tut´s durchgelesen und in keinem hab ich so ein Aufbau gefunden.
Kann mir wer sagen was das ist/wie man damit umgeht bzw mir ein Tut sagen wo das vor kommt?

Danke
Star
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
19.03.2007, 11:28 Uhr
Kest
saint


Hi!

>*&pA< wird ein Zeiger als Referenz übergeben
--
Wenn man einen Hufschlag hört, sollte man >Pferd< denken und nicht >Zebra<.

Dieser Post wurde am 19.03.2007 um 11:33 Uhr von Kest editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
19.03.2007, 11:35 Uhr
virtual
Sexiest Bit alive
(Operator)


Doch, klar gibts ein *&pA:


C++:
void f(int*& A) {
    A = new int[1000];
}


sollte gültig sein.

In C hätte man eben geschrieben:

C++:
void f(int** A) {
    *A = new int[1000];
}


--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
19.03.2007, 11:37 Uhr
Kest
saint


Damit kannst du nicht nur den Wert, auf den der Zeiger zeigt, ändern, sondern auch den Zeiger selbst.


EDIT:
('Tschuldigung für das "Falsche". Aber das war ich nicht, sondern der F..... der mit mir am Tisch sitzt. (Ich musste kurz weg , und da hat er ...))
--
Wenn man einen Hufschlag hört, sollte man >Pferd< denken und nicht >Zebra<.

Dieser Post wurde am 19.03.2007 um 11:46 Uhr von Kest editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
19.03.2007, 14:55 Uhr
0xdeadbeef
Gott
(Operator)


Ich habe meine Zweifel, dass man in C

C++:
    *A = new int[1000];


geschrieben hätte...
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
19.03.2007, 17:09 Uhr
virtual
Sexiest Bit alive
(Operator)



Zitat von 0xdeadbeef:
Ich habe meine Zweifel, dass man in C

C++:
    *A = new int[1000];


geschrieben hätte...


Hm, ich überlege grade, wie ich aus der Nummer wieder raus komme ;-) - Genau:


Nimm einfach ne Programmiersprache wie Java, da gibts so einen Scheiß nicht, über den Du dir grade den Kopf zerbrichst... ;-)
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)

Dieser Post wurde am 19.03.2007 um 17:10 Uhr von virtual editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: