Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
000
25.12.2000, 19:29
feigling



Ich habe nochmal eine Frage zu C++.
Ich bin mir sicher, dass es für C++ Kenner eine total einfache Frage ist, aber nur durch Fragen lernt man.

Was bedeutet bei C++ z.B. "Set==Null" ?
Bedeutet das einfach nur "set==0" ,nur das man bei C++ anstatt die Zahl dahinschreibt das Wort dahinschreibt ?
Ich hoffe ihr antwortet mir
Vielen Dank im Vorraus

P.S. Was bedeutet in manchen Codes dieses Zeichen *
Ist das abhängig von Code, wann man es nimmt oder führt es irgendeine Funktion aus ?

--

zum Seitenanfang zum Seitenende Profil || Suche
001
25.12.2000, 23:40
IH82W8



Hi Feigling,

NULL ist ein sogenannter NULL-Zeiger, den man z.B. verwenden kann, um zu prüfen, ob ein Objekt vorhanden ist (if (pPointer!=NULL) ... ) Wenn man Zeiger auf Datenstrukturen erschafft, sollte man sie immer zuerst auf NULL setzen. Man kann ihn jedoch auch häufig als Äquivalent zu 0, 0x0000 etc. antreffen.
Das *-Zeichen bedeutet, daß es sich hierbei um einen Zeiger handelt, z.B.
CClass *pPointer ist ein Zeiger auf eine Klasse CClass. Die Referenzierung erfolgt dann über "->". pPointer->sName = "Testzeiger" (wobei sName eine Eigenschaft von CClass ist)
Wenn du C++ programmieren willst, wirst du um Zeiger nicht herum kommen ;)
Ich hoffe, daß hat dir ein wenig geholfen, viel Spass noch!

IH82W8

www.starshipmod.com

--

zum Seitenanfang zum Seitenende Profil || Suche
002
26.12.2000, 02:50
Kriz



Stimme zu...

NULL ist ein Makro:

#define NULL 0x0000

Aber erkläre dem armen Feigling auch, was ein Zeiger ist und nicht nur was er macht!!!

Also, mal salopp gesagt ist ein Zeiger eine "besondere" Variable. Ein Zeiger speichert aber keinen Wert, sondern eine Adresse (weil zu jedem Datensegment eine Adresse im Speicher zwecks Wiederauffindung existiert). Ein Zeiger auf ein INT oder FLOAT...

int *ptr;

bedeutet nix anderes, als das unter dem Namen ptr die Startadresse eines INT-Datentyps liegt. Startadresse daher, weil laut Definiton ein INT mindestens 16 und höchstens 32 Bit Speicherplatz belegt. Also zeigt der Zeiger ptr auf das erste Bit des Datentyps INT im Speicher. Danach kommen noch 31 weitere Bits, ehe INT zuende ist. Das nur nebenbei...

Um auf den Inhalt der Speicheradresse, die in ptr gespeichert ist, zugreifen zu können, muß man den Zeiger ptr dereferenzieren, also über die Speicheradresse auf den eigentlichen Wert von ptr zugreifen:

int speicherinhalt = *ptr;

In der INt-Variablen Speicherinhalt steht dann der Wert, den ptr besitzt (wie dieser auch immer aussehen mag). Genauer:

int wert = 4;
int *ptr = &wert; // & ist der Adressoperator, der die Adresse von wert liefert
// Der Zeiger ptr zeigt nun auf die Startadresse von wert
cout << *ptr; // ptr wird dereferenziert und der Inhalt von wert ausgegeben

Merke: In Zeigern stehen nur ADRESSEN, keine Werte!!! Werden Zeiger mit dem Verweisoperator * benutzt (*ptr), geht es um WERTE, ohne * geht es um ADRESSEN...

Der Rest mal irgendwann in meinem C++ Skript...

Cu

--

K:R-I)Z++
"CSS ist cascading style sheets. Und nicht so'n Ranzspiel." - dp
In memory of Voice († 2005/03/30)

zum Seitenanfang zum Seitenende Profil || Suche
003
26.12.2000, 14:22
feigling



Jau, vielen Dank, werde gleich mal versuchen, das zu verstehen.

--

zum Seitenanfang zum Seitenende Profil || Suche