Ci структури и тяхното предаване

Структурата в CI е тип данни, предназначен за приемане на различен тип стойност в един обект. Полезно е, когато трябва да комбинирате няколко променливи с различни типове под същото име. Направете програмата по-компактна, по-удобна за управление. Структурата има сходни характеристики с масиви и класове.

Масиви

Преди да говорим за структурата в C, трябва да опишете масив.
Има едномерни масиви, двуизмерни, триизмерни. Едномерният е този, който има само един ред с напълнени стойности. Двуизмерен - едноизмерен масив, в който има и други едномерни масиви. Обичайният масив в C се записва като: int a= {123 4}. Виждаме, че a - name, int - типът данни, във фигурните скоби {} са стойности, между квадратните скоби [] показва дължината, т.е. броя на елементите. Броят на елементите е статичен, равен на 4. Това означава, че ако потребителят добави пета стойност в този пример, компилаторът ще издаде грешка. Ако първо не знаете сумата, те могат да бъдат добавени по-късно, но квадратните скоби нямат значение.


Двумерното се обявява по подобен начин. Например, масив, съдържащ 5 елемента от масив, докато всеки съдържа 3 елемента, се декларира по следния начин: int a
По същия начин като едномерно, нищо не може да бъде добавено, за да се избегне грешка при компилирането. Разграничавайте динамичните и статичните. Статичен - той е такъв, който съдържа фиксирано количество данни, т.е. има постоянна дължина. Под динамичното се разбира размерът на който не е такъвограничена, тя може да варира по време на изпълнението на програмата. Инициализирането на динамичен масив се извършва без да се посочва точния номер.

Класове

Класът и структурата са сходни, но се различават в някои нюанси. Какво е това? Това е абстракция, която описва методите на все още несъществуващ обект. След създаване на обект или, както се нарича различно, инстанцията на класа има специфични свойства. Методите могат да се използват вътрешно, външно или чрез наследяване.


Класът се декларира като: клас /* име на клас * /{частен: /* спецификатор на частен достъп означава, че управлението на метод е възможно само в рамките на класа * /public: /* прави свойствата достъпни за други части на кода * /protected: /* наследените класове получават възможност да използват тези свойства * /}.

Какво е структура на езика на C

Проектиран да съхранява няколко вида данни. Например, за да създадете каталог на списания, трябва да имате списък със следните параметри:
  • дата на публикуване;
  • Номер на емисията;
  • заглавие;
  • разходи.
  • Могат да се използват масиви за решаване на този проблем. Декларираме масив с дати int date , числа int номерс имената char title [80] струват int цена . По индекс получаваме необходимата информация. Извеждането на информация за продукта под номер 3 изглежда така: cout "дата на издаване:" дата
    ", номер:" номер
    "заглавие:" заглавие
    "цена:" цена ). Структурата опростява вписването, описано както следва: struct book {int date; int номер; char title ; int цена ; }.
    Виждаме едно от основните предимства - съществуват различни видове променливи.Програмистът не само спестява време - опростява кода, в бъдеще ще бъде много по-лесно да се работи.

    Обяви

    Структурите в ПО играят много важна роля - комбинирането на данни от различни типове. Трябва първо да укажете име на структура и свойства. struct name {тип член; } Struct е ключовата дума, тя започва рекламата, име - име, тип - тип данни, име на член - елемент. Обявена по следния начин: name name2 където името се дава при създаването на името на структурата, а name2 е името на променливата. Можете да декларирате променливите на етапа на създаване. struct name {тип член; } name2; Първият и вторият пример са еднакви. Ако има нужда да се декларират няколко променливи, те се прехвърлят чрез запетая. struct name {тип член; } name2 name3 име4.

    Инициализация

    След като структурата е декларирана в CI, тя трябва да бъде инициализирана. struct name {; char член}; име name2; name2.member = "a"; Започването може да се осъществи при създаването. struct name {char member = "a"; } name2; Структурата е със същия синтаксис като в класа. Те имат практически едно и също поведение, възможности. Всичко в тялото на класа по подразбиране не е достъпно за използване от други обекти. В структурата е вярно обратното - всички полета и методи са публични. Можете ръчно да определите частния модификатор за достъп и по този начин да отворите достъп до други функции или класове.

    Масив от структури Si

    Масивите са множество компоненти от един и същи тип. Те се намират един до друг, обжалване на всеки от тях се извършва по цифров индекс. Има едномерни масиви, двуизмерни, триизмерни.
    В едномерни само един ред и n-e номерелементи. Рекламата изглежда така: int a ; Масивът от структури в С е деклариран както следва: struct MyStruct {int a; }; MyStruct obj1 ; В този пример създадохме MyStruct с цяло число, наречено "a". Декларирайте променливата obj1 [] - тя е масив от 10 елемента. Когато декларирате няколко масива от един и същи тип, той използва MyStruct obj1 , obj2
    , инициализацията се появява по време на обявяването. Изглежда така: struct MyStruct {int a; } obj1 ; Създаването на масив от структури с динамично разпределение на паметта изглежда точно като създаване на прост динамичен масив. За целта се използва указател към структурата Ci. Указателят е променлива, която не съдържа стойност, но показва променлива, която има стойност. Съответно указателят съдържа адреса на променливата, към която се отнася. Например, ptr = & var1 означава, че на променливата амперсанд е присвоен само адрес към променливата, но не и същата стойност. Сега всички var1 стойности са достъпни чрез ptr-променливата.
    Операцията * се отнася до съдържанието на клетката, която е обозначена с променливата след този символ. Например, * ptr казва, че съдържа стойности, взети от клетка с адрес към ptr. За да разпределите памет за динамични променливи, използвайте операцията нова. Имаме struct MyStruct {string a; } Ние разпределяме областта на паметта, поставяме някаква стойност в MyStruct * point = new MyStruct

    ; За да изтриете динамичните променливи, използвайте операцията за изтриване. За да освободите място, въведете delete p [];

    Достъп

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

    Създайте myStruct с името на променливата b. struct myStruct {string fio; long num; } б Обръщаме се към fio: b.fio и искаме произволна стойност. Например, b.fio = "Иванов". Помислете за този пример. struct myStruct {string fio; long num; } тел
    = {{"Иванов", 456756}, {Петров, 632345}}; В този пример имаме масив от структури с редове и числа. За да се покаже името на Иванов, използвайте следното: cout myStruct tel

    .fio; Когато искаме да получим стойност 456756, изпълняваме cout myStruct tel

    .num.

    Структура и функции

    Може да се използва като аргументна функция в структурата Ci. struct myStruct {char текст [100]; int стойност; }; Ние имаме стойност стойност, текстов низ от 100 знака. Създайте меню с променливи тип myStruct: myStruct меню. В следващия пример, функцията взема указател към структурата като аргумент, а в тялото на неназована функция има инициализация на тези променливи. void item (менюто myStruct) {sprintf (menu.text, 'one item'); menu.value = 50; }.

    Заключение

    Структурата е набор, извадка от масив, но всички елементи могат да бъдат от различен тип. Той е много подобен на клас, но се различава по това, че свойствата по подразбиране са достъпни за използване от други класове, т.е. те имат публичен спецификатор. Създадени с помощта на ключовата дума struct и вътре в фигурните скоби {} указват свойствата. struct name {int член; }; Обявяването става на етапа на създаване или след това. struct name {int член; } a; или struct name {int член; } a; име на структурата a

    Свързани публикации

    "Maynkraft". Стръмни структури и паметници Bbk приемници и тяхното описание "Сириус Сам 2": кодове и тяхното описание Възходът на гробницата: тестове и тяхното преминаване "Казаци 3": кодове за играта и тяхното изпълнение Програма за определяне на драйверите и тяхното инсталиране