Struktury Ci i ich transmisja

Struktura w CI jest typem danych przeznaczonym do przyjęcia innego typu wartości w jednym obiekcie. Przydatne, gdy trzeba połączyć kilka zmiennych z różnymi typami o tej samej nazwie. Spraw, aby program był bardziej zwarty, wygodniejszy w zarządzaniu. Struktura ma podobne cechy do tablic i klas.

Tablice

Zanim zaczniesz mówić o strukturze w C, musisz opisać tablicę.
Istnieją jednowymiarowe tablice, dwuwymiarowe, trójwymiarowe. Jednowymiarowy to taki, który ma tylko jeden wiersz z wypełnionymi wartościami. Dwuwymiarowy - jednowymiarowa tablica, w której znajdują się inne jednowymiarowe tablice. Zwykła tablica w C jest zapisywana jako: int a= {123 4}. Widzimy, że a - name, int - typ danych, wewnątrz nawiasów klamrowych {} są wartościami, między nawiasami kwadratowymi [] wskazuje długość, czyli liczbę elementów. Liczba elementów jest statyczna, równa 4. Oznacza to, że jeśli użytkownik doda piątą wartość w tym przykładzie, kompilator wygeneruje błąd. Jeśli nie znasz kwoty pierwszej, można je dodać później, ale nawiasy kwadratowe nie mają znaczenia.


Dwuwymiarowy jest zadeklarowany w podobny sposób. Na przykład tablica zawierająca 5 elementów tablicy, podczas gdy każda zawierająca 3 elementy, jest zadeklarowana w następujący sposób: int a
. W ten sam sposób, jak w jednowymiarowym, nic nie można dodać, aby uniknąć błędu kompilacji. Wyróżnij dynamiczny i statyczny. Statyczny - to taki, który przechowuje stałą ilość danych, czyli ma stałą długość. Pod pojęciem dynamicznym rozumie się wielkość, której nie maograniczone, może się różnić podczas wykonywania programu. Inicjowanie tablicy dynamicznej odbywa się bez podania dokładnej liczby.

Klasy

Klasa i struktura są podobne, ale różnią się pewnymi niuansami. Co to jest? Jest to abstrakcja opisująca metody nieistniejącego obiektu. Po utworzeniu obiektu lub, jak to się nazywa w inny sposób, instancja klasy ma określone właściwości. Metody mogą być używane wewnętrznie, zewnętrznie lub dziedziczenie.


Klasa jest zadeklarowana jako: class /* class name * /{private: /* private access specifier oznacza, że ​​zarządzanie metodą jest możliwe tylko wewnątrz klasy * /public: /* sprawia, że ​​właściwości są dostępne dla innych części kodu * /protected: /* odziedziczone klasy uzyskują możliwość korzystania z tych właściwości * /}.

Co to jest struktura w języku C

Zaprojektowany do przechowywania kilku rodzajów danych. Na przykład, aby utworzyć katalog czasopism, musisz mieć listę o następujących parametrach:
  • data publikacji;
  • Numer wydania;
  • tytuł;
  • koszt.
  • Aby rozwiązać ten problem, można zastosować tablice. Deklarujemy tablicę z datami int date , number int numbero nazwach char title [80] cost int price . Według indeksu uzyskujemy niezbędne informacje. Dane wyjściowe informacji o produkcie pod numerem 3 wyglądają następująco: cout "date of issue:" date
    ", number:" number
    "title:" title
    "price:" price ). Struktura upraszcza wpis, opisany w następujący sposób: struct book {int date; liczba int; char tytuł ; int cena ; }
    Widzimy jedną z głównych zalet - istnieją różne typy zmiennych.Programista nie tylko oszczędza czas - upraszcza kod, w przyszłości będzie znacznie łatwiej pracować.

    Reklamy

    Struktury w PW odgrywają bardzo ważną rolę - łącząc dane różnych typów. Musisz najpierw określić nazwę struktury i właściwości. nazwa struktury {element typu; } Struct to słowo kluczowe, uruchamia reklamę, nazwę - nazwę, typ - typ danych, nazwę elementu członkowskiego. Deklarowane w ten sposób: name name2 gdzie nazwa jest nadawana podczas tworzenia nazwy struktury, a name2 to nazwa zmiennej. Możesz zadeklarować zmienne na etapie tworzenia. nazwa struktury {element typu; } name2; Pierwszy i drugi przykład są sobie równoważne. Jeśli istnieje potrzeba zadeklarowania kilku zmiennych, są one przesyłane przecinkami. nazwa struktury {element typu; } nazwa2 nazwa3 nazwa4.

    Inicjalizacja

    Po zadeklarowaniu struktury w CI, należy ją zainicjować. nazwa struktury {; członek znaku}; imię i nazwisko2; name2.member = "a"; Inicjacja może wystąpić podczas tworzenia. nazwa struktury {char member = "a"; } name2; Struktura ma taką samą składnię jak w klasie. Mają praktycznie takie samo zachowanie, możliwości. Wszystko w ciele klasy jest domyślnie niedostępne do użytku przez inne obiekty. W strukturze jest odwrotnie - wszystkie pola i metody są publiczne. Możesz ręcznie określić modyfikator dostępu prywatnego, a tym samym otworzyć dostęp do innych funkcji lub klas.

    Tablica struktur Si

    Tablice są mnogością elementów tego samego typu. Znajdują się one obok siebie, odwołanie do każdego z nich odbywa się na indeksie numerycznym. Istnieją jednowymiarowe tablice, dwuwymiarowe, trójwymiarowe.
    W jednowymiarowym tylko jednym wierszu i numerze n-eelementy Reklama wygląda następująco: int a ; Tablica struktur w C jest zadeklarowana w następujący sposób: struct MyStruct {int a; }; MyStruct obj1 ; W tym przykładzie stworzyliśmy MyStruct z elementem całkowitym o nazwie "a". Deklaracja zmiennej obj1 [] - jest to tablica składająca się z 10 elementów. Deklarując kilka tablic tego samego typu, używa MyStruct obj1 , obj2
    , inicjalizacja następuje podczas ogłoszenia. Wygląda to tak: struct MyStruct {int a; } obj1 ; Tworzenie tablicy struktur z dynamicznym przydzielaniem pamięci wygląda dokładnie tak samo, jak tworzenie prostej tablicy dynamicznej. W tym celu używany jest wskaźnik do struktury Ci. Wskaźnik jest zmienną, która nie zawiera wartości, ale wskazuje zmienną, która ma wartość. Odpowiednio, wskaźnik zawiera adres zmiennej, do której się odnosi. Na przykład ptr = i var1 oznacza, że ​​do zmiennej ampersand przypisany jest tylko adres do zmiennej, ale nie ta sama wartość. Teraz wszystkie wartości zmiennej1 są dostępne poprzez zmienną ptr.
    Operacja * odnosi się do zawartości komórki, która jest wskazywana przez zmienną za tym znakiem. Na przykład * ptr mówi, że zawiera wartości pobrane z komórki z adresem do ptr. Aby przydzielić pamięć dla zmiennych dynamicznych, użyj operacji new. Mamy strukturę MyStruct {string a; } Przydzielamy obszar pamięci, dodajemy jakąś wartość do MyStruct * point = new MyStruct

    ; Aby usunąć zmienne dynamiczne, użyj operacji usuwania. Aby zwolnić miejsce, wpisz delete p [];

    Dostęp

    Wszystkie pozycje są domyślnie publiczne, więc inne klasy mogą z nich korzystać. Aby poprosić lub zmienić niektórewartości, najpierw musisz odwołać się do elementu i dopiero wtedy wykonać odpowiednie działanie.

    Utwórz myStruct z nazwą zmiennej b. struct myStruct {string fio; długa liczba; } b Przechodzimy do fio: b.fio i pytamy o arbitralną wartość. Na przykład b.fio = "Ivanov". Rozważ ten przykład. struct myStruct {string fio; długa liczba; } tel
    = {{"Iwanow", 456756}, {Pietrow, 632345}}; W tym przykładzie mamy tablicę struktur z wierszami i liczbami. Aby wyświetlić imię Iwanowa, użyj: cout myStruct tel

    .fio; Kiedy chcemy uzyskać wartość 456756, wykonujemy cout myStruct tel

    .num.

    Struktura i funkcje

    Może być używana jako funkcja argumentu w strukturze Ci. struct myStruct {char text [100]; wartość int; }; Mamy wartość wartości, ciąg tekstowy składający się z 100 znaków. Utwórz menu zmienne typ myStruct: myStruct menu. W poniższym przykładzie funkcja przyjmuje wskaźnik do struktury jako argument, a w treści funkcji bez nazwy istnieje inicjalizacja tych zmiennych. void item (myStruct menu) {sprintf (menu.text, 'jeden przedmiot'); menu.value = 50; }

    Wniosek

    Struktura jest zbiorem, próbką macierzy, ale wszystkie elementy mogą być różnych typów. Jest bardzo podobny do klasy, ale różni się tym, że właściwości są domyślnie dostępne dla innych klas, czyli mają publiczny specyfikator. Utworzono za pomocą słowa kluczowego struct, aw nawiasach klamrowych {} określono właściwości. nazwa struktury {int member; }; Ogłoszenie pojawia się na etapie tworzenia lub później. nazwa struktury {int member; } a; lub nazwa struktury {int member; } a; nazwa struktury a

    Powiązane publikacje

    Protokół komunikacyjny: transmisja danych Co to jest deskryptor? Opis struktury atrybutu