Frage zu Quelltext/Zeigerarrays
-
Du kannst auch auto durch std::vectorstd::string::const_iterator ersetzen wenns dir Spaß macht, ich habe auto verwendet, um mich auf das Wesentliche zu konzentrieren. Und was er jetzt mit den einzelnen Argumenten tut, tut nichts zu Sache - ich wollte lediglich die allgemeine Verarbeitung in C++ vorzeigen.
-
Danke für eure schnellen Antworten.
Sorry, hab ich aus Versehen ins falsche Forum geschrieben.Aber so wirklich kapiere ich das trotzdem noch nicht, warum ich jetzt einmal "*" brauche und einmal nicht.
-
Harry87 schrieb:
Aber so wirklich kapiere ich das trotzdem noch nicht, warum ich jetzt einmal "*" brauche und einmal nicht.
Das * steckt in dem einen Fall schon im [] mit drin. Falsch, eigentlich in beiden. Jedes [] enthält ein * aufgrund der folgenden Definition:
a[b] := *(a+b)
. Wenn du alsoargv[1][i]
hast, ist das gleichbedeutend mit*(*(argv + 1) + i)
(schreibt so aber keiner, nur fürs Verständnis).Der Code ist trotzdem ... nicht besonders. Man versteht durch scharfes Nachdenken noch viel zu gut, was er machen soll.
-
314159265358979 schrieb:
Fünftens, hier die C++-Variante: http://ideone.com/nxEZM
Wenn jemand schon etwas als C++ Variante anpreist, soll er auch die echte nehmen: http://ideone.com/fDuJ2
Ein
std::vector
als Wrapper eines Arrays ist eigentlich nie sinnvoll.
-
314159265358979 schrieb:
Viertens, heißt es int main(int argc, char** argv).
Bullshit! Ob man
char* argv[]
oderchar** argv
schreibt ist dem Standard egal.
-
Bashar schrieb:
Das * steckt in dem einen Fall schon im [] mit drin. Falsch, eigentlich in beiden. Jedes [] enthält ein * aufgrund der folgenden Definition:
a[b] := *(a+b)
. Wenn du alsoargv[1][i]
hast, ist das gleichbedeutend mit*(*(argv + 1) + i)
(schreibt so aber keiner, nur fürs Verständnis).Der Code ist trotzdem ... nicht besonders. Man versteht durch scharfes Nachdenken noch viel zu gut, was er machen soll.
Hm okay also die Definitionen hab ich soweit verstanden. Aber das erklärt mir irgendwie immer noch nicht, warum das * dann bei dem anderen Array wegfällt...?
-
EOutOfResources schrieb:
Bullshit!
Ruhig, Mr pi bezog sich doch wahrscheinlich lediglich auf das void vor dem main.
-
Harry87 schrieb:
Hm okay also die Definitionen hab ich soweit verstanden. Aber das erklärt mir irgendwie immer noch nicht, warum das * dann bei dem anderen Array wegfällt...?
Dann wende die Definition doch mal auf deinen Fall an.
-
yahendrik schrieb:
Ruhig, Mr pi bezog sich doch wahrscheinlich lediglich auf das void vor dem main.
Ups, das habe ich übersehen. Ich nehme alles zurück.
-
fDuJ2 schrieb:
314159265358979 schrieb:
Fünftens, hier die C++-Variante: http://ideone.com/nxEZM
Wenn jemand schon etwas als C++ Variante anpreist, soll er auch die echte nehmen: http://ideone.com/fDuJ2
Ein
std::vector
als Wrapper eines Arrays ist eigentlich nie sinnvoll.Im Normalfall will man die Argumente irgendwo speichern und damit etwas tun.