anfänger frage
-
hallo, kann mir jemand den unterschied erklären warum ich bei der unteren Zeile das kaufmanns und ( & ) brauche und oben nicht ( bitte für anfänger verständlich ).
Desweiteren, wie würde das aussehen ohne diesen "->" also mit termin.name ( der pfeil ist für mich neu )
struct termin // damit die 2 Zeilen nicht ganz in der Luft hängen { char name; int jahr; int xxx .... .... }; scanf("%s", termin->name); // ohne & - warum? scanf("%d", &termin->jahr); // mit & - warum?mfg
-
Also eigentlich muss (damit es einigermassen sinnig korrekt ist) oben auch ein & stehen.
Und eigentlich kann termin->name auch nicht funktionieren, da termin keine Instanz ist.
Also eigentlich solltest Du uns nicht zu falschem Code fragen warum er so aussieht

-
der code ist aus einer musterlösung.
-
lies dir ein anständiges tutorial durch.
-
-
RobRoy882 schrieb:
der code ist aus einer musterlösung.
Dann ist das Muster Schrott. Mit %s wird ein String spezifiziert, termin->name ist aber nur ein einzelnes Zeichen und kein String. Korrekt wäre sowas
struct termin { char name[20]; // oder wie lang auch immer // oder char* name; // und den Zeiger dann irgendwo mit genuegend Speicherplatz initialisieren };Warum nun einmal mit & und einmal ohne? scanf erwartet für die Parameter grundsätzlich Zeiger, damit an diesen Stellen geschrieben werden kann. Die Funktionen stammen halt noch aus C Zeiten und da gibt es keine Referenzen. Und termin->name ist ja bereits ein Zeiger bzw. wird zu einem implizit umgewandelt (falls als Array). Dort ist & deshalb nicht notwendig. termin->jahr hingegen ist ein int. Du musst deshalb erst einen Zeiger darauf erzeugen, also & benutzen.
-
ahhhh super danke!!
das ist mal ne antwort.
danke dir!