Computerhilfen.de Logo
Forum
Tipps
News
Frage stellen

Zeiger in C++

Hi Leute.
Da ich mich nun in C++ einarbeite, werde ich wohl öfters in Zukunft fragen stellen, so auch diese....
Zeiger sind da, um Datentypen bei einer Deklaration einen Speicher zu allokieren richtig??Aber das ganze geschieht doch auch ohne Zeiger, wenn man eine Variable einfach deklariert. Wo liegt dann der Unterschied? Bzw. wozu braucht man Zeiger wirklich?


Antworten zu Zeiger in C++:

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Hi |

Als Nicht-C++-Freak wage ich trotzdem mal eine Antwort:

Also ein Zeiger an sich ist dazu da, auf eine Speicheradresse eines Objektes, einer Variable oder was auch immer zu verweisen. Wenn du also einen Zeiger auf eine Variable deklarierst, dann steht in dem Zeiger an sich nur eine Adresse drin, unter der die CPU den Wert der Variablen findet.

Das ist oftmals wesentlich schneller, weil Zeiger ja somit recht schlank sind. Es kommt ja auch häufig vor, dass du auf ein Objekt zeigst. Dort ist es ein gewaltiger Unterschied, ob eine Variable ein komplettes Objekt enthält oder nur (als Zeiger) einen Verweis (Speicheradresse) darauf.

greez 8)
JoSsiF

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Hmmm...die Erklärung an sich ist logisch und anschaulichm,deshalb gut zu verstehen. Nur...wie ist es nun denn, wenn ich eine Variable mit einem Zeiger deklariere.Ich meine, wie kann ich dann auf die Speicheradresse der deklarierten Variable zugreifen. Der Quelltext würde ja so aussehen :
#include <iostream.j>
int main()
{
int* i=5;
}

Wie stelle ich es nun an, dass ich die den Wert Adresse dann zu einem späteren Zeitpunkt sozusagen wieder "hole".

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Die Programmzeile an sich wird so nicht funktionieren.

Aber es gibt Tutorials, die das besser erklären können als ich. Schau dir mal das hier an.

greez 8)
JoSsiF

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Danke.Das habe ich bereits selber schon gelesen gehabt...deshalb auch hier nochmal nachgefragt, weil ich das nicht so recht verstanden habe.

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

OK, also versuchen wir's mal ;)

Der Einzeiler da macht IMHO wenig Sinn, weil du einem Zeiger direkt einen Wert zuweist. Der Zeiger aber zeigt ja auf nichts.

Zur Deklaration/Definition: Das Sternchen (*) nimmst du bei der Definition eines Zeigers, und angesprochen wird er dann mit einem & (plus Bezeichner).

greez 8)
JoSsiF

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Also würde es im obigen Beispiel eine Deklaration eines Ziegers sein, wenn ich die Zuweisung ausgelassen hätte richtig? Das mit dem Adressoperator "&" ist klarm. Summa Summarum ist ein Zeiger doch nichts anderes, als eine Verlinkung, die sich Speicherallokation spart, da sie keinen weiteren SPeicherplatz schafft, sondern auf einen bereits existierenden verweist. Korrigiere mich wenn ich falsch liege.

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Jo, denke das kann man so stehen lassen. Wobei aber auch ein Zeiger nicht ohne Speicher auskommt, denn irgendwo muss auch dessen Wert stehen ;)

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Das ist klar, das habe ich auch mit

Zitat
sondern auf einen bereits existierenden verweist
gemeint. Danke Jossif

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Kein Problem. Hoffe, ich konnte wenigstens etwas helfen.

Hab die Materie bisher auch nur gestreift, aber manchmal hilft auch solches Anfängerwissen schon etwas weiter ;)

greez 8)
JoSsiF


« "Externe" DLL´s in PHP einbinden...Exe Datei bearbeiten ? »
 

Schnelle Hilfe: Hier nach ähnlichen Fragen und passenden Tipps suchen!

Fremdwörter? Erklärungen im Lexikon!
C++
C++ ist eine von der ISO standardisierte Programmiersprache und eine erweiterte Form von C zur objektorientierten, generischen und prozeduralen Programmierung. Weitestgeh...

Arbeitsspeicher
Siehe RAM. ...

Hauptspeicher
Siehe RAM. ...