Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Variable zur laufzeit

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 ] > 2 < [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ]
010
09.08.2003, 22:47 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


jupp kannst du machen. drei und vierfach usw gibts auch. Fraglich wie sinnvoll das ist
doppelpointer heisst einfach nur das du halt einen zeiger auf einen zeiger hast.

wenn du z.b. ein dynamisches 2d-array verwenden willst machst du das so indem du dir als erstes einen doppelpointer erzeugst.

diesen lässt du dann auf ein array von pointer zeigen.

die pointer aus diesem array wiederum zeigen selber jeder wiederum auf ein Array

Alles Klar?
--
...fleißig wie zwei Weißbrote

Dieser Post wurde am 09.08.2003 um 22:47 Uhr von Heiko editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
011
09.08.2003, 23:01 Uhr
~Anfänger00
Gast


Tut mir leid ich kann dir nicht ganz folgen,ich hab da so meine Probleme mit Zeigern allgemein.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
012
09.08.2003, 23:07 Uhr
Pablo
Supertux
(Operator)


@Anfänger00: Weißt du was ein Zeiger ist und wozu ein Zeiger gut ist?
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!

Dieser Post wurde am 09.08.2003 um 23:08 Uhr von Pablo Yanez Trujillo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
013
09.08.2003, 23:12 Uhr
~Anfänger00
Gast


Glaube schon ein Zeiger ist eine "Variable" die auf eine andere zeigt,oder?
man kann auch die adresse der variable im speicher rausfinden:

C++:
int i;
int *pi = &i;
cout<<*pi; //gibt die adresse aus;

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
014
09.08.2003, 23:19 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


ne gibt nicht die adresse sondern den inhalt aus

in diesem zusammenhang ist * der derefenzierungsoperator


C++:
cout<<pi;



würde die adresse ausgeben

Gruss Heiko
--
...fleißig wie zwei Weißbrote

Dieser Post wurde am 09.08.2003 um 23:20 Uhr von Heiko editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
015
09.08.2003, 23:21 Uhr
~Marzel
Gast


das von dir genannte beispiel ist nicht ganz korrekt.
statt *pi musst du pi schreiben, um die Adresse
von i auszugeben.


C++:
#include <iostream>
int main(){
    int i;
    int *pi = &i;
    std::cout<<pi; //gibt die adresse aus;
}



--edit: Pablo. [ cpp ] Tags eingefügt. --

Dieser Post wurde am 09.08.2003 um 23:26 Uhr von Pablo Yanez Trujillo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
016
09.08.2003, 23:25 Uhr
Pablo
Supertux
(Operator)


Ja genau, aber in deinem Beispiel muss cout << pi << endl; stehen, damit die Adresse angezeigt wird.

Ein Zeiger speichert die Adresse der Variable, auf die der Zeiger zeigt. Ein Array ist ähnlich wie ein Zeiger, man könnte sagen, dass ein Array ein Zeiger auf das erste Element ist.

Zum Beispiel:


Code:
char x = 'a';
char y[6] = {'H', 'a', 'l', 'l', 'o', '\0'};
cout << x << endl << y << endl;



Das gibt aus:

Code:
a
Hallo



Ein string (char*) ist ein Zeiger auf y[0], d.h auf das erste Element von y

C++:
char* t = &y[0]; // Zeiger auf das erste Element eines Arrays
// char* t = y; // fubktioniert auch
cout << t << endl;
cout << t[0] << t[1] << t[2] << t[3] << t[4] << t[5] << endl; // t ist ein Pointer aber ich greife auf die Elemente, als wäre t ein Array


Die Ausgabe ist:

Code:
Hallo
Hallo



Das kann am Anfang sehr verwirrend sein, mich hat wahnsinnig gemacht, denn ich verstand es gar nicht. Aber mit ein bisschen Übung versteht man das.

Verdammt: Schon wieder gab es schnellere Antworten!
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!

Dieser Post wurde am 09.08.2003 um 23:32 Uhr von Pablo Yanez Trujillo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
017
09.08.2003, 23:28 Uhr
~Anfänger00
Gast


Wie gesagt meine Probleme...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
018
09.08.2003, 23:34 Uhr
~Anfänger00
Gast


Habt ihr vielleicht ein paar Aufgaben,bei denen es um zeiger geht damit ich das besser üben kann?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
019
09.08.2003, 23:45 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


na dann versuch doch mal dir ein dynamisches zweidimensioles array zu bauen

dieses dann mit zufalls werten belegen (funktion die dir ein zufallswert liefert heist rand() )

dann das array ausgeben

und zum schluss natürliches den speicher wieder freigeben


C++:
int **my_2d_array,x,y;

cout<<"Bitte y dimension eingeben:";
cin>>y;
cout<<"Bitte x dimension eingeben:";
cin>>x;

//speicher allokieren

//zufallswerte ins array schreiben

//array ausgeben

//speicher wieder freigeben



wenn was nicht klar ist fragen
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: [ 1 ] > 2 < [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ]     [ 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: