C-Programm Zuweisung?

...komplette Frage anzeigen

3 Antworten

Da die anderen dich schon auf den Adressoperator hingewiesen haben, gehe ich da jetzt nicht weiter drauf ein.

Aber eine wichtige Kleinigkeit:

In deinem kurzen Programm gibt es keinen einzigen Zuweisungsoperator! Es gibt aber drei Initialisierungsoperatoren! Das verwechseln viele Leute, da beide mit einem Gleichheitszeichen dargestellt werden, aber intern machen beide völlig unterschiedliche Dinge.

Allerdings kommt man mit solchen Feinheiten - zugegeben - bei C weniger als bei C++, bei Low-Level-Programmierung oder beim Compiler-Design in Berührung.

Trotzdem sollte man immer im Hinterkopf behalten, dass es dabei einen gewaltigen Unterschied gibt! Besonders im Hinblick auf statische oder globale Variablen. Oder beim Unterschied zwischen Zeigern und Arrays, was häufig gerade für Einsteiger verwirrend ist.

Ohne jetzt den Rahmen sprengen zu wollen, ein kurzes abschließendes Beispiel:

int i = 0; // Initialisierung
i = 0; // Zuweisung

Ein ähnliches Problem ist der Unterschied zwischen "Deklaration" und "Definition", aber das wird jetzt zu viel ...

Behalte einfach immer im Hinterkopf, dass "da noch irgendwas war", wenn du später mal etwas fortgeschrittenere Lektüre zum Thema C liest.

Viel Spaß und einen schönen Abend noch! :)

Omnivore05 27.10.2015, 21:08

Tolle Antwort!

1

das ist die speicheradresse

aus dem Wiki https://de.wikibooks.org/wiki/C-Programmierung:_Zeiger

Eine Variable kann in C auch direkt über die Adresse angesprochen werden. Eine Adresse liefert der &-Operator (auch als Adressoperator bezeichnet). Diesen Adressoperator kennen Sie bereits von der scanf-Anweisung:

 scanf("%i", &a);

Wo diese Variable abgelegt wurde, lässt sich mit einer printf Anweisung herausfinden:

 printf("%p\n", &a); 

Schon logisch wenn du du &a und &b ausgibst. Damit gibst du die Adresse der Vars aus. Mach die &'s weg

Was möchtest Du wissen?