Ci struktur a jejich přenos

Struktura CI je datový typ určený pro přizpůsobení odlišného typu hodnoty v jednom objektu. Užitečné, když potřebujete kombinovat několik proměnných s různými typy pod stejným názvem. Zajistěte, aby byl program kompaktnější, je mnohem pohodlnější. Struktura má podobné vlastnosti jako matice a třídy.

Pole

Než budete mluvit o struktuře v C, musíte popsat pole.
Existují jednorozměrné matice, dvourozměrné, trojrozměrné. Jednorozměrný je ten, který má pouze jeden řádek s vyplněnými hodnotami. Dvojrozměrné - jednorozměrné pole, v němž existují další jednorozměrné matice. Obvyklé pole v jazyce C je napsáno jako: int a= {123 4}. Vidíme, že a - jméno, int - typ dat, uvnitř kudrných svorek {} jsou hodnoty, mezi hranatými závorkami [] označuje délku, tedy počet prvků. Počet prvků je statický, rovný 4. To znamená, že pokud uživatel přidá v tomto příkladu pátou hodnotu, kompilátor vydá chybu. Pokud nejprve neznáte částku, mohou být později přidány, avšak hranaté závorky nezáleží.


Dvojrozměrný je deklarován podobným způsobem. Například pole, které obsahuje pět prvky pole, a každý z nich obsahuje 3 prvky je deklarován jako: int a
.Pro podobné jednorozměrné nic mohou být přidány do dostat chybě kompilace. Rozlišujte dynamické a statické. Statické - je takový, který obsahuje pevný množství dat, které má konstantní délku. Dynamický Je zřejmé, že velikost neníomezené, může se to lišit během provádění programu. Inicializace dynamického pole nastává bez zadání přesného čísla.

Třídy

Třída a struktura jsou podobné, ale v některých nuáních se liší. Co to je? Toto je abstrakce, která popisuje metody dosud neexistujícího objektu. Po vytvoření objektu nebo, jak se nazývá jinak, má instanci třídy specifické vlastnosti. Metody mohou být použity interně, externě nebo dědičně.


Třída je deklarována jako: třída /* název třídy * /{private: /* * /protected: /* zděděné třídy mají možnost používat tyto vlastnosti * /}.

Co je struktura v jazyce C

Navrženo pro ukládání několika typů dat. Chcete-li například vytvořit katalog časopisů, musíte mít seznam s následujícími parametry:
  • datum publikace;
  • Číslo emisí;
  • název;
  • náklady.
  • Byly použity pole pro vyřešení tohoto problému. Deklarujeme pole s datem int date , čísla int numbers názvy char title [80] cost int price . Indexem získáme potřebné informace. Výstup informací o produktu pod číslem 3 vypadá takto: cout "datum vydání:" datum
    ", číslo:" číslo
    "název:" název
    "cena:" cena ). Struktura zjednodušuje zápis, který je popsán takto: struct book {int date; int číslo; char title ; int cena ; }}
    Vidíme jednu z hlavních výhod - existují různé typy proměnných.Programátor nejen šetří čas - zjednodušuje kód, v budoucnu bude mnohem snazší pracovat.

    Reklamy

    Struktury v CI hrají velmi důležitou roli - kombinují data různých typů. Nejprve musíte zadat název struktury a vlastnosti. název struktury {type member; } Struct je klíčové slovo, spustí reklamu, jméno - jméno, typ - datový typ, název - element element. Deklarováno takto: name name2, kde je název při zadání názvu struktury uveden a název2 je název proměnné. Proměnné můžete deklarovat ve fázi tvorby. název struktury {type member; } name2; První a druhý příklad jsou vzájemně ekvivalentní. Pokud je potřeba prohlásit několik proměnných, jsou přeneseny čárkou. název struktury {type member; } name2 name3 name4.

    Inicializace

    Po zadání struktury v CI, musí být inicializováno. název struktury {; char member}; název2; jméno2.member = "a"; Zahájení může dojít při vytváření. název struktury {char member = "a"; } name2; Struktura je stejná syntaxe jako ve třídě. Mají prakticky stejné chování, příležitosti. Vše ve třídě je ve výchozím nastavení k dispozici pro použití jinými objekty. Ve struktuře platí opak - všechny pole a metody jsou veřejné. Můžete ručně zadat modifikátor soukromého přístupu a tím otevřít přístup k jiným funkcím nebo třídám.

    Array struktur Si

    Pole jsou velké množství součástí stejného typu. Jsou umístěny vedle sebe, každá z nich se odvolává na číselný index. Existují jednorozměrné matice, dvourozměrné, trojrozměrné.
    V jednorozměrném jediném řádku a n-e čísleprvky Reklama vypadá takto: int a ; Pole struktur v C je deklarováno takto: struct MyStruct {int a; }; MyStruct obj1 ; V tomto příkladu jsme vytvořili MyStruct s celočíselným prvkem s názvem "a". Deklarujte proměnnou obj1 [] - je to pole 10 prvků. Při deklarování několika polí stejného typu používá MyStruct obj1 , obj2
    , během inicializace nastane inicializace. Vypadá to takto: struct MyStruct {int a; } obj1 ; Vytvoření pole struktur s dynamickým přidělením paměti vypadá přesně jako vytvoření jednoduchého dynamického pole. Pro tento účel je použit ukazatel na strukturu Ci. Ukazatel je proměnná, která neobsahuje hodnotu, ale označuje proměnnou, která má hodnotu. Ukazatel tedy obsahuje adresu proměnné, na kterou odkazuje. Například ptr = & var1 znamená, že proměnnou ampersand je přiřazena pouze proměnná, ale ne stejná hodnota. Nyní jsou všechny hodnoty var1 dostupné prostřednictvím proměnné ptr.
    Operace * se vztahuje k obsahu buňky, která je označena proměnnou za tímto znakem. Například * ptr říká, že obsahuje hodnoty odebrané z buňky s adresou na ptr. Chcete-li alokovat paměť pro dynamické proměnné, použijte novou operaci. Máme strukturu MyStruct {string a; } Rozdělíme paměťovou oblast, přidáme nějakou hodnotu do MyStruct * point = new MyStruct

    ; Chcete-li odstranit dynamické proměnné, použijte operaci odstranění. Chcete-li uvolnit místo, zadejte příkaz smazat p [];

    Přístup

    Všechny položky jsou ve výchozím nastavení veřejné, takže je mohou používat jiné třídy. Požádat nebo změnit některéhodnota, musíte nejdříve odkazovat na prvek a teprve potom provést příslušnou akci.

    Vytvořte myStruct s názvem proměnné b. struktura myStruct {string fio; dlouhé číslo; } b Obrátili jsme se na fio: b.fio a požádali o libovolnou hodnotu. Například b.fio = "Ivanov". Zvažte tento příklad. struktura myStruct {string fio; dlouhé číslo; } tel
    = {{"Ivanov", 456756}, {Petrov, 632345}}; V tomto příkladu máme řadu struktur s řádky a čísly. Chcete-li zobrazit jméno Ivanova, použijte následující: cout myStruct tel

    .fio; Když chceme získat hodnotu 456756, spustíme cout myStruct tel

    .num.

    Struktura a funkce

    Může být použita jako argumentová funkce v struktuře Ci. struct myStruct {char text [100]; hodnota int; }; Máme hodnotovou hodnotu, textový řetězec se 100 znaky. Vytvořte variabilní menu typu myStruct: myStruct. V následujícím příkladu má funkce funkci ukazatele na strukturu jako argument a v těle nepomenované funkce je inicializace těchto proměnných. neplatná položka (nabídka myStruct) {sprintf (menu.text, 'jedna položka'); menu.value = 50; }}

    Závěr

    Struktura je soubor, vzorek pole, ale všechny prvky mohou mít různé typy. Je velmi podobná třídě, ale liší se tím, že vlastnosti jsou ve výchozím nastavení dostupné pro použití jinými třídami, tj. Mají veřejný specifikátor. Vytvořené pomocí struktury klíčového slova a uvnitř kudrnatých ramín {} specifikují vlastnosti. název struktury {int member; }; Oznámení probíhá ve fázi tvorby nebo po něm. název struktury {int member; } a; nebo název struktury {int member; } a; název struktury a

    Související publikace

    Komunikační protokol: přenos dat Jak snadné je přenos kontaktů z telefonu do počítače Jak nastavit monitor pro správný přenos barev pomocí? Přenos Windows 10 do jiného počítače: způsoby a pokyny Přenos fotografií z telefonu do počítače: několik jednoduchých způsobů Přenos souborů přes WiFi mezi počítači: instrukce