Структуре у Ц.

Structures C



У Ц, структура је променљива коју дефинише корисник и користи се за складиштење збирке променљивих под једним ентитетом. Користимо једноставну аналогију да објаснимо имплементацију и корисност структура у Ц.

Претпоставимо да желимо да складиштимо податке о корисницима који користе одређену услугу. Такве информације могу укључивати корисничко име, е -пошту, адресу, начин рада услуге итд. Да бисмо сачували такве информације, можемо кренути у креирање сваког атрибута као самосталне променљиве. Међутим, када имамо десет и више корисника, код може измакнути контроли и постати врло тежак и досадан за читање.







Да бисмо то решили, можемо створити структуру. Унутар структуре можемо сачувати све атрибуте које деле сви корисници, а затим додати јединствене променљиве за сваког корисника.



Хајде да погледамо различите примере да видимо како то применити.



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

Да бисмо дефинисали структуру у језику Ц, користимо кључну реч струцт иза које следи назив структуре. После имена имамо пар увијених заграда у које додајемо чланове.





Размотрите доњу синтаксу:

струцтструцт_наме
{
/ * подаци */
откуцајте име_члана;
откуцајте име -члана2;
откуцајте име -члана3;

...
типмембер_намеН;
};

Назив структуре може бити било шта што желите ако се придржава конвенције именовања програмског језика Ц.



Пример структуре корисничке аналогије можемо имплементирати као:

струцткорисника
{
цхаркорисничко име[двадесет];
цхаремаил[225];
цхарадреса[педесет];
интстарост;
боол регистрован;
};

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

Постоје два главна начина за креирање променљивих структуре. Први је да их декларишете као нормалне променљиве, а други да их поставите помоћу витичастих заграда.

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

струцткорисника
{
цхаркорисничко име[двадесет];
цхаремаил[225];
цхарадреса[педесет];
интстарост;
боол регистрован;
};

интглавни(интаргц, цхар цонст *аргв[])
{
струцткорисници усер1,усер2,усер3
повратак 0;
}

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

струцткорисника
{
цхаркорисничко име[двадесет];
цхаремаил[225];
цхарадреса[педесет];
интстарост;
боол регистрован;
}усер1,усер2,усер3;

У овом примеру их креирамо током декларације структуре.

Структура члана Инит

Не можете покренути чланове структуре током креирања јер нема меморије додељене за тип.

Да бисте иницијализирали чланове структуре, користите увијене заграде као што је приказано испод:

струцткорисника
{
цхаркорисничко име[двадесет];
цхаремаил[225];
цхарадреса[педесет];
интстарост;
боол регистрован;
};
интглавни(интаргц, цхар цонст *аргв[])
{
струцткорисници усер1= {'моје корисничко име', '[заштићена е -пошта]', 35, истина}
повратак 0;
}

Чланови структуре приступа

За приступ члановима структуре користимо оператор тачке, почевши од назива структуре, тачке и имена члана.

струцткорисника
{
цхаркорисничко име[двадесет];
цхаремаил[225];
цхарадреса[педесет];
интстарост;
боол регистрован;
};
интглавни(интаргц, цхар цонст *аргв[])
{
струцткорисници усер1= {'моје корисничко име', '[заштићена е -пошта]', 35, истина}
усер1.емаил = '[заштићена е -пошта]'
повратак 0;
}

У овом примеру приступамо члановима усер1.

Типедеф кључна реч

Кључну реч типедеф користимо за креирање псеудонима за типове података, чинећи код читљивијим.

На пример:

типедеф струцткорисника
{
цхаркорисничко име[двадесет];
цхаремаил[225];
цхарадреса[педесет];
интстарост;
боол регистрован;
}у;
интглавни(интаргц, цхар цонст *аргв[])
{
у корисник1= {'моје корисничко име', '[заштићена е -пошта]', 35, истина}
усер1.регистровано = лажно
повратак 0;
}

У горњем примеру, креирали смо псеудоним у за структуру корисника. Због тога не морамо сваки пут да позивамо кориснике струцт -а. Можемо вас користити као што је горе дефинисано.

Структурни показивачи

Такође можете имати показивач на структуру. Ово вам омогућава приступ члановима помоћу оператора ->.

На пример:

типедеф струцткорисника
{
цхаркорисничко име[двадесет];
цхаремаил[225];
цхарадреса[педесет];
интстарост;
боол регистрован;
}у;
интглавни(интаргц, цхар цонст *аргв[])
{
у корисник1= {'моје корисничко име', '[заштићена е -пошта]', 35, истина}

// показивач на другу структуру
у*усер_птр= &усер1
усер_птр->корисничко име= 'птрусернаме'
повратак 0;
}

Закључак

Овај водич покрива основе рада са структурама у програмском језику Ц.

Хвала вам за читање!