Структури в C.

Structures C



В C структурата е дефинирана от потребителя променлива, използвана за съхраняване на колекция от променливи под един обект. Нека използваме проста аналогия, за да обясним внедряването и полезността на структурите в C.

Да предположим, че искаме да съхраняваме информация за потребителите, използващи конкретна услуга. Такава информация може да включва потребителско име, имейл, адрес, режим на обслужване и други. За да съхраняваме такава информация, можем да създадем всеки атрибут като самостоятелна променлива. Въпреки това, когато имаме десет плюс потребители, кодът може да излезе извън контрол и да стане много труден и уморителен за четене.







За да разрешим това, можем да създадем структура. Вътре в структурата можем да съхраняваме всички атрибути, споделени от всички потребители, и след това да добавяме уникални променливи за всеки потребител.



Нека да разгледаме различни примери, за да видим как да приложим това.



Как да дефинираме структура в C

За да дефинираме структура в C, използваме ключовата дума struct, последвана от името на структурата. След името имаме чифт къдрави скоби, където добавяме членовете.





Помислете за синтаксиса по -долу:

структураstruct_name
{
/* данни */
въведете име на член;
въведете име на член2;
въведете име на член3;

...
Типиме на членN;
};

Името на структурата може да бъде всичко, което искате, стига да се придържа към конвенцията за именуване на езика за програмиране C.



Можем да приложим примерна структура на потребителската аналогия като:

структурапотребители
{
charпотребителско име[двайсет];
charелектронна поща[225];
charадрес[петдесет];
intвъзраст;
bool регистриран;
};

Как да създадете структурни променливи

Има два основни начина за създаване на структурни променливи. Първият е да ги декларирате като нормални променливи, а другият е да ги зададете с помощта на къдрави скоби.

Примерът по -долу показва как да се декларират структурни променливи като стандартни C променливи.

структурапотребители
{
charпотребителско име[двайсет];
charелектронна поща[225];
charадрес[петдесет];
intвъзраст;
bool регистриран;
};

intглавен(intargc, char const *argv[])
{
структурапотребители потребител1,потребител2,потребител3
връщане 0;
}

Другият метод за създаване на структурни променливи е както е показано по -долу:

структурапотребители
{
charпотребителско име[двайсет];
charелектронна поща[225];
charадрес[петдесет];
intвъзраст;
bool регистриран;
}потребител1,потребител2,потребител3;

В този пример ги създаваме по време на декларация на структура.

Структурен член Init

Не можете да инициализирате членовете на структурата по време на създаването, тъй като няма памет, разпределена за типа.

За да инициализирате членовете на структура, използвате фигурните скоби, както е показано по -долу:

структурапотребители
{
charпотребителско име[двайсет];
charелектронна поща[225];
charадрес[петдесет];
intвъзраст;
bool регистриран;
};
intглавен(intargc, char const *argv[])
{
структурапотребители потребител1= {'myusername', '[защитен имейл]', 35, вярно}
връщане 0;
}

Членове на структурата за достъп

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

структурапотребители
{
charпотребителско име[двайсет];
charелектронна поща[225];
charадрес[петдесет];
intвъзраст;
bool регистриран;
};
intглавен(intargc, char const *argv[])
{
структурапотребители потребител1= {'myusername', '[защитен имейл]', 35, вярно}
потребител1.електронна поща = '[защитен имейл]'
връщане 0;
}

В този пример имаме достъп до членовете на user1.

Typedef ключова дума

Използваме ключовата дума typedef, за да създадем псевдоним за типовете данни, правейки кода по -четим.

Например:

typedef структурапотребители
{
charпотребителско име[двайсет];
charелектронна поща[225];
charадрес[петдесет];
intвъзраст;
bool регистриран;
}ти;
intглавен(intargc, char const *argv[])
{
ти потребител1= {'myusername', '[защитен имейл]', 35, вярно}
потребител1.регистриран = невярно
връщане 0;
}

В горния пример създадохме псевдоним u за потребителската структура. Следователно, не е нужно всеки път да извикваме потребители на struct. Можем да използваме u, както е дефинирано по -горе.

Структурни указатели

Можете също така да имате указател към структура. Това ви позволява да получите достъп до членовете с помощта на оператора ->.

Например:

typedef структурапотребители
{
charпотребителско име[двайсет];
charелектронна поща[225];
charадрес[петдесет];
intвъзраст;
bool регистриран;
}ти;
intглавен(intargc, char const *argv[])
{
ти потребител1= {'myusername', '[защитен имейл]', 35, вярно}

// указател към друга структура
ти*user_ptr= &потребител1
user_ptr->потребителско име= 'ptrusername'
връщане 0;
}

Заключение

Това ръководство обхваща основите на работата със структури в езика за програмиране C.

Благодаря ви за четенето!