Einfaches Structur-Beispiel
-
Hi! Ich habe eine Frage zu folgendem Code.
Wieso ist die Ausgabe immer die gleiche, egal ob ich den Code der "Variante 1" vor oder hinter "Variante 2 kopiere"?
So wie im Beispiel unten ist "Variante 1" im Array an Position 0, aber wenn ich ich es "unter" "Variante 2" kopiere müsste es doch an Array Pos. 1 stehen und danach ausgegeben werden... oder?
Ich hoffe mich verständlich ausgedrückt zu haben ...
DANKE schon jetzt für eure Mühe!!!
#include <stdio.h> #include <string.h> #include <stdlib.h> //Prototyp der Struktur, reserviert/benötigt also noch KEINEN Speicherplatz struct datensatz { char name[20]; char vorname[10]; int steuerklasse; }; int main(void) { struct datensatz person, personal[30]; int i; //1. Variante: Inhalt in Struktur einfügen strcpy(person.name, "Walker"); strcpy(person.vorname, "Johnny"); person.steuerklasse = 3; //2. Variante: Inhalt in Struktur-Array einlesen printf("Bitte Personendaten eingeben: \n\n"); printf("Name = "); gets(personal[1].name); printf("Vorname = "); gets(personal[1].vorname); printf("Steuerklasse = "); scanf("%i", &personal[1].steuerklasse); //Kopiert in einer Einweisung den kompletten Inhalt der Strukturvariable Person //OHNE diese Zuweisung fehlt die Zuweisung aus "Variante 1". personal[0] = person; for (i = 0; i <= 1; i++) { printf("%s\n", personal[i].name); printf("%s\n", personal[i].vorname); printf("%i\n", personal[i].steuerklasse); printf("\n"); } return 0; }
Ausgabe:
Bitte Personendaten eingeben: Name = aaf Vorname = afas Steuerklasse = 34 Walker Johnny 3 aaf afas 34
-
cStarter12 schrieb:
Ich hoffe mich verständlich ausgedrückt zu haben ...
Äh ......, nein.
An welcher Position die Daten im Array stehen, bestimmst du mit dem Index und nicht mit der Position im Quelltext.
Wenn du z.B.
gets(personal[0].name);
(auch beim vornamen) und nochpersonal[1] = person;
machst, hast du eine andere Reihenfolge.