Beitrag
von Manuelito » Do 11. Mär 2010, 20:45
Hey,
Da ich keine Lust mehr habe, die Sachen neu einzuscannen, kommentier ich es hier kurz:
WS07_A Aufg. 6c
Das ist natürlich richtig, *= 0 beim ersten Schleifendurchlauf würde den Algorithmas relativ wirksam zerstören.
WS07_A Aufg. 8d
Da ich davon ausgegangen bin, dass die beiden Zeiger von item schon bei der Erstellung mit 0 initialisiert werden, habe ich das hier weggelassen/vergessen. Aber du hast Recht, sicherer ist es, man schreibt das noch da rein.
WS07_B Aufg. 4
Bin mir ziemlich sicher, dass der hier das b aus Zeile 6 nimmt.
Wenn du zum Beispiel folgende Funktion schreibst:
int a(int b) {
return b;}
wird wohl kein Compiler auf die Idee kommen, irgendwo anders nach einem b zu suchen, er wird das Übergebene wieder zurückgeben. Und nicht anders verstehe ich auch die Aufgabe. Außerdem ist in Zeile 11 keine Deklaration sondern nur die Definition. Deklariert wird die Funktion b() (die in keinerlei Zusammenhang zu der Variable b steht, sie teilen sich nur unglücklicherweise den Namen) in Zeile 2.
Anders sieht es in Zeile 22 aus, da in der Funktion c nirgendwo eine Variable b deklariert wird (und es auch keine globale Variable b gibt). Hier fehlen jedoch für mein Verständnis die Klammern () hinter dem b, damit der Compiler die Funktion b zu Rate zieht und nicht irgendwo nach einer Variablen b sucht.
Edit: Ich habe gerade mal den Code so abgetippt und mit ein bisschen Leben gefüllt. Unter anderem habe ich in Zeile 22 "i = b;" geschrieben (also ohne Klammern hinter dem b). Da der Compiler keine Fehlermeldung gibt, er würde b nicht finden, scheint er sich doch der Funktion zu bedienen. Weiter habe ich das aber jetzt nicht ausgebaut, ich habe also nicht überprüft, ob wirklich alle Werte so benutzt werden, wie ich es vorgeschlagen hab, dazu fehlt mir gerade die Motivation.