Ц струцт (Структуре)

У овом упутству ћете научити о врстама структура у Ц програмирању. Научићете да дефинишете и користите структуре помоћу примера.

У Ц програмирању, структура (или структура) је скуп променљивих (могу бити различитих типова) под једним именом.

Како дефинисати структуре?

Да бисте могли да креирате структурне променљиве, морате да дефинишете њен тип података. За дефинисање структуре structкористи се кључна реч.

Синтакса струцт

 струцт струцтуреНаме (датаТипе члан1; датаТипе члан2;…); 

Ево примера:

 струцт Персон (име цхар (50); инт цитНо; плутајућа плата;); 

Овде struct Personје дефинисан изведени тип . Сада можете креирати променљиве овог типа.

Креирајте структурне променљиве

Када се декларише тип структуре, не додељује се меморија или меморија. Да бисмо доделили меморију датог типа структуре и радили са њом, треба да креирамо променљиве.

Ево како креирамо структурне променљиве:

струцт Персон (име цхар (50); инт цитНо; плутајућа плата;); инт маин () (струцт Персон персон1, персон2, п (20); ретурн 0;)

Други начин креирања променљиве струцт је:

 струцт Персон (име цхар (50); инт цитНо; плутајућа плата;) персон1, персон2, п (20); 

У оба случаја креирају се две променљиве персон1, персон2 и променљива низа п која има 20 елемената типа struct Person.

Приступити члановима структуре

Постоје две врсте оператора који се користе за приступ члановима структуре.

  1. . - Члан оператер
  2. -> - Оператор показивача структуре (биће размотрено у следећем водичу)

Претпоставимо да желите да приступите плати особе2. Ево како то можете учинити.

 персон2.плата

Пример: Додајте две раздаљине

 // Program to add two distances (feet-inch) #include struct Distance ( int feet; float inch; ) dist1, dist2, sum; int main() ( printf("1st distance"); printf("Enter feet: "); scanf("%d", &dist1.feet); printf("Enter inch: "); scanf("%f", &dist1.inch); printf("2nd distance"); printf("Enter feet: "); scanf("%d", &dist2.feet); printf("Enter inch: "); scanf("%f", &dist2.inch); // adding feet sum.feet = dist1.feet + dist2.feet; // adding inches sum.inch = dist1.inch + dist2.inch; // changing to feet if inch is greater than 12 while (sum.inch>= 12) ( ++sum.feet; sum.inch = sum.inch - 12; ) printf("Sum of distances = %d\'-%.1f "", sum.feet, sum.inch); return 0; )

Оутпут

 1. удаљеност Унесите стопе: 12 Унесите инч: 7.9 2. удаљеност Унесите ноге: 2 Унесите инч: 9.8 Збир растојања = 15'-5.7 "

Кључна реч типедеф

Користимо typedefкључну реч за стварање псеудонима за типове података. Обично се користи са структурама за поједностављивање синтаксе декларисања променљивих.

Овај код

струцт Дистанце (инт феет; флоат инцх;); инт маин () (струцт Удаљеност д1, д2;)

је еквивалентно са

типедеф струцт Удаљеност (инт стопала; пливајући инч;) растојања; инт маин () (растојања д1, д2;)

Угњежђене структуре

Можете креирати структуре унутар структуре у програмирању на језику Ц. На пример,

структурни комплекс (инт имаг; флоат реал;); број структуре (струцт цомплек цомп; инт интегерс;) нум1, нум2;

Претпоставимо да желите да имаг променљиве нум2 промените на 11. Ево како то можете учинити:

 нум2.цомп.имаг = 11; 

Зашто се гради у Ц-у?

Претпоставимо да желите да чувате податке о некој особи: њено име, држављанство и плату. Можете да креирате различите променљиве име, цитНо и плату за чување ових података.

Шта ако треба да чувате податке више особа? Сада треба да креирате различите променљиве за сваку информацију по особи: име1, цитНо1, плата1, име2, цитНо2, плата2 итд.

Бољи приступ би био да се збирка свих сродних информација добије под јединственом именском Personструктуром и да се користи за сваку особу.

Више о струцт

  • Структуре и показивачи
  • Прослеђивање структура функцији

Занимљиви Чланци...