logo

Struktūru klāsts C

Strādājot ar lielu saistītu datu kopu un dažādiem datu veidiem, to efektīvai organizēšanai un pārvaldībai ir izšķiroša nozīme. C programmēšanā masīvu un struktūru kombinācija, t.i., struktūru masīvs, nodrošina jaudīgu rīku tā pārvaldīšanai. Šajā rakstā mēs apspriežam konstrukciju masīva jēdzienu C.

iebilst pret json java

Kas ir Array?

Masīvs ir viendabīga elementu kolekcija, kas glabājas nepārtrauktās atmiņas vietā. Masīva lielums ir fiksēts, un mēs varam nejauši piekļūt elementiem, izmantojot to indeksu.

Masīva deklarācija



array_type   array_name  [size];>

Kas ir Struktūra?

Struktūra ir viens no lietotāja definētajiem C datu tipiem, kas var saturēt dažādu veidu elementus.

Struktūras deklarācija C

  struct   structure_name{    memberType memberName;   ...  ... };>

Struktūru masīvs

Masīvu, kura elementiem ir tipa struktūra, sauc par struktūras masīvu. Tas parasti ir noderīgi, ja mūsu programmā ir nepieciešami vairāki struktūras mainīgie.

Nepieciešamība pēc konstrukciju masīva

Pieņemsim, ka mums ir 50 darbinieki un mums ir jāuzglabā 50 darbinieku dati. Tāpēc mums ir jādefinē 50 struct Employee tipa mainīgie un tajā jāsaglabā dati. Tomēr 50 mainīgo lielumu deklarēšana un apstrāde nav viegls uzdevums. Iedomāsimies lielāku scenāriju, piemēram, 1000 darbinieku.

Tātad, ja mēs deklarējam mainīgo šādā veidā, ar to nav iespējams rīkoties.

struct Employee emp1, emp2, emp3, .. . ... . .. ... emp1000;>

Šim nolūkam mēs varam definēt masīvu, kura datu tips būs struct Employee soo, kas būs viegli pārvaldāms.

Struktūru masīva deklarācija

  struct     structure_name array_name   [number_of_elements];>

Struktūru masīva inicializācija

Mēs varam inicializēt struktūru masīvu šādos veidos:

arraylist.sort
  struct     structure_name array_name   [number_of_elements] = {  {element1_value1, element1_value2, ....},  {element2_value1, element2_value2, ....},  ......  ...... };>

To pašu inicializāciju var veikt arī šādi:

  struct     structure_name array_name   [number_of_elements] = {  element1_value1, element1_value2 ....,  element2_value1, element2_value2 ..... };>

GNU C kompilatori atbalsta noteiktu inicializēšanu struktūrām, tāpēc mēs varam to izmantot arī struktūru masīva inicializēšanai.

  struct     structure_name array_name   [number_of_elements] = {  {.element3 = value, .element1 = value, ....},  {.element2 = value, .elementN = value, ....},  ......  ...... };>

Struktūras masīva piemērs valodā C

C




// 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;> }>

>

android versijas

>

Izvade

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>