пользователей: 30398
предметов: 12406
вопросов: 234839
Конспект-online
РЕГИСТРАЦИЯ ЭКСКУРСИЯ


Структуры. Операция доступа к члену структуры. Доступ к члену через указатель.

Структура – это группа связанных переменных.

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;

}


28.12.2014; 22:49
хиты: 885
рейтинг:0
Точные науки
информатика
Языки программирования
для добавления комментариев необходимо авторизироваться.
  Copyright © 2013-2024. All Rights Reserved. помощь