Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

WhiteMike

Alter Hase

  • »WhiteMike« ist der Autor dieses Themas

Beiträge: 507

Wohnort: Ulm

Beruf: Schüler

  • Private Nachricht senden

1

20.04.2006, 15:15

Das Zeichen '&'

Kann irgendein Noob so einem Noob wie mir erklären, was dieses Zeichen bedeutet?

Ich hab das als ein Referenz-Zeichen kennengelernt, aber in solchen Codes bin ich mir nicht mehr sicher, ob das stimmt

C-/C++-Quelltext

1
2
LPDIRECTDRAW lpDD;
DDTRY(DirectDrawCreate(NULL, &lpDD, NULL);


Ich versteh schon, dass das eine lächerliche Frage ist, aber aus meinem Buch bin ich auch nicht schlauer geworden und deshalb würd ich mich riesig freuen, wenn mir jemand doch die sache kurz erklären könnte.
Ich danke euch für die Zeit.

Mit freundlichen Grüßen,
WhiteMike

Lemming

Alter Hase

Beiträge: 550

Beruf: Schüler

  • Private Nachricht senden

2

20.04.2006, 15:18

in diesem fall ist es einfach so, dass dieses zeichen die addresse, also einen zeiger auf die variable dahinter ausgibt...
du übergibst der funktion also nicht die variable sondern einen zeiger darauf.
Es gibt Probleme, die kann man nicht lösen.
Für alles andere gibt es C++...

grek40

Alter Hase

Beiträge: 1 491

Wohnort: Dresden

  • Private Nachricht senden

3

20.04.2006, 15:21

Ich will ja nicht behaupten, dass ich ein Noob bin (kann aber sein), aber ich beantorte das trotzdem mal ;)

Wenn du

C-/C++-Quelltext

1
2
int iTmp;
int &iTmp2 = iTmp;

schreibst erstellst du iTmp2 als Referenz auf iTmp.
Aber wenn du irgendwo

C-/C++-Quelltext

1
foo( &iTmp );

schreibst, dann übergibst du foo() als Parameter die Adresse von iTmp.
Außerhalb von der Definition von Referenzen gibt & also immer die Adresse von einer Variable zurück.

// zu langsam :rolleyes:

WhiteMike

Alter Hase

  • »WhiteMike« ist der Autor dieses Themas

Beiträge: 507

Wohnort: Ulm

Beruf: Schüler

  • Private Nachricht senden

4

20.04.2006, 15:26

Aha!

Okay, danke leute!
Ihr habt mir echt sehr geholfen :)

Mit freundlichen Grüßen,
WhiteMike

5

20.04.2006, 17:01

das zeichen hat aber noch mehr bedeutungen!

also nicht wundern wenn du sowas siehst:

C-/C++-Quelltext

1
2
3
4
if(variable & 1)
{
//...

}


in dem fall ist es das binäre UND. ist wie ich finde zwar recht kompliziert zu verstehen und kommt in den grundlagenbüchern auch meistens am ende. aber das da oben testet ob eine variable ungerade ist.

an der stelle hab ich grade selbst mal eine frage: ist das schneller als % ? :)

Steven77

Alter Hase

Beiträge: 515

Wohnort: Münster - Gievenbeach

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

6

20.04.2006, 17:07

Zitat von »"Sk!p"«

C-/C++-Quelltext

1
2
3
4
if(variable & 1)
{
//...

}

[...]
ist das schneller als % ? :)

Ja, ist es. Jedoch werden viele Compiler aus "x % 2" ohnehin wohl sowas wie "x & 1" machen...

Werbeanzeige