Kun käsitellään suurta joukkoa toisiinsa liittyvää dataa ja erilaisia tietotyyppejä, sen tehokas järjestäminen ja hallinta on ratkaisevan tärkeää. C-ohjelmoinnissa taulukoiden ja rakenteiden yhdistelmä eli rakenteiden joukko tarjoaa tehokkaan työkalun sen hallintaan. Tässä artikkelissa keskustelemme C:n rakennetaulukon käsitteestä.
java vertailumerkkijono
Mikä on Array?
Taulukko on homogeeninen kokoelma jatkuvaan muistipaikkaan tallennettuja elementtejä. Taulukon koko on kiinteä ja voimme käyttää elementtejä satunnaisesti niiden indeksin avulla.
Array-ilmoitus
array_type array_name [size];>
Mikä on rakenne?
Rakenne on yksi käyttäjän määrittämistä C:n tietotyypeistä, joka voi sisältää jäseninä erityyppisiä elementtejä.
Ilmoitus rakenteesta C
struct structure_name{ memberType memberName; ... ... };> Joukko rakenteita
Taulukkoa, jonka elementit ovat tyyppirakennetta, kutsutaan rakennetaulukoksi. Se on yleensä hyödyllinen, kun tarvitsemme useita rakennemuuttujia ohjelmaamme.
Tarvitaan erilaisia rakenteita
Oletetaan, että meillä on 50 työntekijää ja meidän on tallennettava 50 työntekijän tiedot. Tätä varten meidän on määritettävä 50 struct Employee -tyyppistä muuttujaa ja tallennettava tiedot siihen. 50 muuttujan ilmoittaminen ja käsitteleminen ei kuitenkaan ole helppoa. Kuvitellaan isompi skenaario, kuten 1000 työntekijää.
Joten jos ilmoitamme muuttujan tällä tavalla, tätä ei voida käsitellä.
struct Employee emp1, emp2, emp3, .. . ... . .. ... emp1000;>
Tätä varten voimme määritellä taulukon, jonka tietotyyppi on struct Employee soo, joka on helposti hallittavissa.
Ilmoitus rakenteiden joukosta
struct structure_name array_name [number_of_elements];>
Rakenteiden joukon alustaminen
Voimme alustaa rakenteiden joukon seuraavilla tavoilla:
merkkijonotaulukon luominen javassa
struct structure_name array_name [number_of_elements] = { {element1_value1, element1_value2, ....}, {element2_value1, element2_value2, ....}, ...... ...... };> Sama alustus voidaan tehdä myös seuraavasti:
struct structure_name array_name [number_of_elements] = { element1_value1, element1_value2 ...., element2_value1, element2_value2 ..... };> GNU C -kääntäjät tukevat rakenteiden määrättyä alustusta, joten voimme käyttää tätä myös useiden rakenteiden alustuksessa.
struct structure_name array_name [number_of_elements] = { {.element3 = value, .element1 = value, ....}, {.element2 = value, .elementN = value, ....}, ...... ...... };> Esimerkki C:n rakennetaulukosta
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;> }> |
>
miten merkkijono muunnetaan merkiksi
>
Lähtö
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>