Struktury v C.

Structures C



V C je struktura uživatelem definovaná proměnná používaná k ukládání kolekce proměnných pod jedinou entitu. Použijme jednoduchou analogii k vysvětlení implementace struktur a užitečnosti v C.

Předpokládejme, že chceme ukládat informace o uživatelích využívajících konkrétní službu. Tyto informace mohou zahrnovat uživatelské jméno, e -mail, adresu, režim služby atd. Abychom takové informace uložili, můžeme začít vytvářet každý atribut jako samostatnou proměnnou. Když však máme deset a více uživatelů, kód se může vymknout kontrole a stane se velmi obtížným a únavným na čtení.







Abychom to vyřešili, můžeme vytvořit strukturu. Uvnitř struktury můžeme uložit všechny atributy sdílené všemi uživateli a poté přidat jedinečné proměnné pro každého uživatele.



Podívejme se na různé příklady, abychom zjistili, jak to implementovat.



Jak definovat strukturu v C

K definování struktury v C používáme klíčové slovo struct následované názvem struktury. Za názvem máme dvojici složených závorek, kam přidáváme členy.





Zvažte níže uvedenou syntaxi:

strukturanázev_struktury
{
/ * data */
zadejte název_členu;
zadejte název_členu2;
zadejte název_členu3;

...
typmember_nameN;
};

Název struktury může být libovolný, pokud splňuje konvenci pojmenování programovacího jazyka C.



Příkladovou strukturu uživatelské analogie můžeme implementovat jako:

strukturauživatelé
{
charuživatelské jméno[dvacet];
chare-mailem[225];
charadresa[padesátka];
intstáří;
bool registrován;
};

Jak vytvářet proměnné struktury

Existují dva hlavní způsoby vytváření strukturních proměnných. Prvním je deklarovat je jako normální proměnné a druhým je nastavit je pomocí složených závorek.

Následující příklad ukazuje, jak deklarovat proměnné struktury jako standardní proměnné C.

strukturauživatelé
{
charuživatelské jméno[dvacet];
chare-mailem[225];
charadresa[padesátka];
intstáří;
bool registrován;
};

inthlavní(intargc, char konst *argv[])
{
strukturauživatelé uživatel1,uživatel2,uživatel3
vrátit se 0;
}

Další způsob vytváření strukturních proměnných je následující:

strukturauživatelé
{
charuživatelské jméno[dvacet];
chare-mailem[225];
charadresa[padesátka];
intstáří;
bool registrován;
}uživatel 1,uživatel2,uživatel3;

V tomto případě je vytvoříme během deklarace struktury.

Struktura Člen Poč

Během vytváření nemůžete inicializovat členy struktury, protože pro typ není přidělena žádná paměť.

Chcete -li inicializovat členy struktury, použijte složené závorky, jak je znázorněno níže:

strukturauživatelé
{
charuživatelské jméno[dvacet];
chare-mailem[225];
charadresa[padesátka];
intstáří;
bool registrován;
};
inthlavní(intargc, char konst *argv[])
{
strukturauživatelé uživatel1= {'uživatelské jméno', '[email protected]', 35, skutečný}
vrátit se 0;
}

Přístup ke členům struktury

Pro přístup ke členům struktury používáme operátor teček, počínaje názvem struktury, tečkou a názvem člena.

strukturauživatelé
{
charuživatelské jméno[dvacet];
chare-mailem[225];
charadresa[padesátka];
intstáří;
bool registrován;
};
inthlavní(intargc, char konst *argv[])
{
strukturauživatelé uživatel1= {'uživatelské jméno', '[email protected]', 35, skutečný}
uživatel 1.e-mailem = '[email protected]'
vrátit se 0;
}

V tomto případě přistupujeme ke členům user1.

Klíčové slovo typu Typedef

Klíčové slovo typedef používáme k vytvoření aliasu pro datové typy, díky čemuž je kód čitelnější.

Například:

typedef strukturauživatelé
{
charuživatelské jméno[dvacet];
chare-mailem[225];
charadresa[padesátka];
intstáří;
bool registrován;
}u;
inthlavní(intargc, char konst *argv[])
{
u uživatel 1= {'uživatelské jméno', '[email protected]', 35, skutečný}
uživatel 1.registrovaný = Nepravdivé
vrátit se 0;
}

Ve výše uvedeném příkladu jsme vytvořili alias u pro strukturu uživatelů. Proto nemusíme pokaždé volat strukturované uživatele. Můžeme použít u, jak je definováno výše.

Ukazatele struktury

Můžete mít také ukazatel na strukturu. To vám umožní přístup ke členům pomocí operátoru ->.

Například:

typedef strukturauživatelé
{
charuživatelské jméno[dvacet];
chare-mailem[225];
charadresa[padesátka];
intstáří;
bool registrován;
}u;
inthlavní(intargc, char konst *argv[])
{
u uživatel 1= {'uživatelské jméno', '[email protected]', 35, skutečný}

// ukazatel na jinou strukturu
u*user_ptr= &uživatel 1
user_ptr->uživatelské jméno= 'ptrusername'
vrátit se 0;
}

Závěr

Tato příručka pokrývá základy práce se strukturami v programovacím jazyce C.

Děkuji za přečtení!