struct frage



  • Hey Leute
    hab dieses Stückchen code auf meinem Rechner gefunden und hätt eine Frage hierzu:

    #include <stdio.h>
    #include <stdlib.h>
    #include <conio.h>
    #define MAX 30
    
    struct adres {
       char vname[MAX];
       char nname[MAX];
       long PLZ;
       char ort[MAX];
       int geburtsjahr;
    } adressen;
    
    void ausgabe(struct adres x) { 
    /* warum verwende ich hier adres x. X ist nirgendwo deklariert und wenn ich x weglass krieg ich eine Fehlermeldung
    
    könnt ich eigentlich auch x oben bei der struct adres deklarien und dann 
    void ausgabe(x) schreiben?
    
    */
    
       printf("\n\nSie gaben ein:\n\n");
       printf("Vorname.........:%s",   x.vname);
       printf("Nachname........:%s",   x.nname);
       printf("Postleitzahl....:%ld\n",x.PLZ);
       printf("Ort.............:%s",   x.ort);
       printf("Geburtsjahr.....:%d\n", x.geburtsjahr);
    }
    
    int main(void) {
       printf("Vorname      : ");
       fgets(adressen.vname, MAX, stdin);
       printf("Nachname     : ");
       fgets(adressen.nname, MAX, stdin);
       printf("Postleitzahl : ");
       do {
          scanf("%5ld",&adressen.PLZ);
       } while(getchar()!= '\n');
       printf("Wohnort      : ");
       fgets(adressen.ort, MAX, stdin);
       printf("Geburtsjahr  : ");
       do {
          scanf("%4d",&adressen.geburtsjahr);
       } while(getchar()!='\n' );
    
       ausgabe(adressen);
       getch();
       return EXIT_SUCCESS;
    }
    

    Wie ihr seht hab ich meine Fragen im code versteckt.
    Freu mich scho auf eure Antworten...

    lg und gute Nacht
    piscoster



  • piscoster schrieb:

    /* warum verwende ich hier adres x. X ist nirgendwo deklariert und wenn ich x weglass krieg ich eine Fehlermeldung

    da wirds ja auch zum erstenmal neu angelegt. irgendwie musste ja eine struct in die funktion reingeben. aber nimm besser einen struct-pointer, sonst wird das argument kopiert, was meistens unnötig ist.
    🙂


Anmelden zum Antworten