Wanneer u te maken heeft met een grote reeks gerelateerde gegevens en verschillende gegevenstypen, is het efficiënt organiseren en beheren ervan cruciaal. Bij C-programmeren biedt de combinatie van arrays en structuren, dat wil zeggen een array van structuren, een krachtig hulpmiddel om dat te beheren. In dit artikel bespreken we het concept van een array van structuren in C.
Linux welke
Wat is Array?
De array is een homogene verzameling elementen die zijn opgeslagen op de continue geheugenlocatie. De grootte van de array staat vast en we hebben willekeurig toegang tot de elementen met behulp van hun index.
Verklaring van array
array_type array_name [size];>
Wat is structuur?
De structuur is een van de door de gebruiker gedefinieerde gegevenstypen in C die elementen van verschillende typen als leden kunnen bevatten.
Verklaring van een structuur in C
struct structure_name{ memberType memberName; ... ... };> Reeks structuren
Een array waarvan de elementen van het type structuur zijn, wordt een array met structuur genoemd. Het is over het algemeen handig als we meerdere structuurvariabelen in ons programma nodig hebben.
Behoefte aan een reeks structuren
Stel we hebben 50 medewerkers en we moeten de gegevens van 50 medewerkers opslaan. Daarom moeten we 50 variabelen van het type struct Employee definiëren en de gegevens daarin opslaan. Het declareren en verwerken van de 50 variabelen is echter geen gemakkelijke taak. Laten we ons een groter scenario voorstellen, zoals 1000 werknemers.
Dus als we de variabele op deze manier declareren, is het niet mogelijk om hiermee om te gaan.
struct Employee emp1, emp2, emp3, .. . ... . .. ... emp1000;>
Daarvoor kunnen we een array definiëren waarvan het gegevenstype struct Employee is, zodat deze gemakkelijk te beheren is.
array in Java-methoden
Verklaring van een reeks structuren
struct structure_name array_name [number_of_elements];>
Initialisatie van een reeks structuren
We kunnen de reeks structuren op de volgende manieren initialiseren:
struct structure_name array_name [number_of_elements] = { {element1_value1, element1_value2, ....}, {element2_value1, element2_value2, ....}, ...... ...... };> Dezelfde initialisatie kan ook worden uitgevoerd als:
struct structure_name array_name [number_of_elements] = { element1_value1, element1_value2 ...., element2_value1, element2_value2 ..... };> GNU C-compilers ondersteunen aangewezen initialisatie voor structuren, zodat we dit ook kunnen gebruiken bij de initialisatie van een reeks structuren.
struct structure_name array_name [number_of_elements] = { {.element3 = value, .element1 = value, ....}, {.element2 = value, .elementN = value, ....}, ...... ...... };> Voorbeeld van een array van structuur in C
C
voor- en nadelen van technologie
// C program to demonstrate the array of structures> #include> > // structure template> struct> Employee {> >char> Name[20];> >int> employeeID;> >int> WeekAttendence[7];> };> > // driver code> int> main()> {> >// defining array of structure of type Employee> >struct> Employee emp[5];> > >// adding data> >for> (>int> i = 0; i <5; i++) {> >emp[i].employeeID = i;> >strcpy>(emp[i].Name,>'Amit'>);> >int> week;> >for> (week = 0; week <7; week++) {> >int> attendence;> >emp[i].WeekAttendence[week] = week;> >}> >}> >printf>(>'
'>);> > >// printing data> >for> (>int> i = 0; i <5; i++) {> >printf>(>'Emplyee ID: %d - Employee Name: %s
'>,> >emp[i].employeeID, emp[i].Name);> >printf>(>'Attendence
'>);> >int> week;> >for> (week = 0; week <7; week++) {> >printf>(>'%d '>, emp[i].WeekAttendence[week]);> >}> >printf>(>'
'>);> >}> > >return> 0;> }> |
>
>
Uitvoer
Emplyee ID: 0 - Employee Name: Amit Attendence 0 1 2 3 4 5 6 Emplyee ID: 1 - Employee Name: Amit Attendence 0 1 2 3 4 5 6 Emplyee ID: 2 - Employee Name: Amit Attendence 0 1 2 3 4 5 6 Emplyee ID: 3 - Employee Name: Amit Attendence 0 1 2 3 4 5 6 Emplyee ID: 4 - Employee Name: Amit Attendence 0 1 2 3 4 5 6>