Структура – это группа связанных переменных.
1)Объявление структуры:
struct mystruct // mystruct – имя ( или дескриптор) структуры
{
int cena;
float ves; это элементы поля структуры.
char name[20] ;
}; // ставится в конце знак (;)
- Имя структуры - спецификатор типа, определяемого пользователем.
- Описание структуры не создает переменную и не выделяет под нее пямять!
- Объявление структуры является оператором, поэтому в конце ставится знак “;”
Доступ к конкретному элементу структуры осуществляется с помощью операции “.”
Для получения доступа к членам структуры используется операция “.”
Для получения доступа к членам структуры через указатель используется операция “->”
2)Использование структуры в программе и доступ к ее членам.
mystruct first, second; // создание двух переменных типа mystruct
first.cena=1000; это присвоение членам структуры значений!!!
first.ves=100.5;
strcpy(first.name,"Товар_1");
3)Одновременное объявление структуры и переменных типа структуры.
struct mystruct {
int cena;
float ves;
char name[20] ;
} first,second; // создание двух переменных типа mystruct
4. Объявление структуры, если в программе используется только одна структура
struct {
int cena;
float ves;
char name[20] ;
}first,second;
5)Общий формат объявления структуры:
struct имя_типа_структуры {
тип имя_элемента1;
тип имя_элемента2;
.
.
тип имя_элементаN;
} переменная1, переменная2,...,переменнаяK;
6)Использование указателей на структуры и операции -> (стрелка).
struct mystruct {
int cena;
float ves;
char name[20] ;
} first; // определение структурной переменной, память выделяется при
//компиляции
…
mystruct *p; // объявление указателя на структуру
p=&first;// указателю p присваивается адрес структурной переменной first
p->cena=100;// доступ к члену структуры через указатель
// аналогично (*p).cena=100;
p=new mystruct;// динамическое выделение памяти под указатель
p->cena=200;
delete p; // удаление динамической переменной-указателя.
Содержимое одной структуры можно присвоить другой, если обе эти структуры имеют одинаковый тип.
struct my{
int a,b;
}s1,s2;
int main()
{
s1.a=s1.b=10;
s2.a=s2.b=20;
s2=s1;
return 0;
}