Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






  • Long num;






    };

    Данный шаблон описывает структуру с именем типа структуры sprav, состоящую из двух компонентов: строки fio и целой переменной num типа long. Имя типа структуры sprav необязательно и используется для ссылки на эту структуру. Компоненты структуры - данные любого типа, включая и другие структуры. Имя внутри структуры может быть таким же, как имя объекта вне структуры. Если шаблон описан внутри функции - он доступен только этой функции, если шаблон описан вне функции - он доступен любой функции программы. Установка шаблона не вызывает никаких действий в программе.

    Структурные переменные

    Объявление структурных переменных приводит к выделению памяти для компонент структуры, куда можно записать данные или откуда можно прочитать их. Для объявления структурных переменных имеются несколько способов.

    1. Установить структурный шаблон:

    struct sprav {

    char fio[20];

    Long num;

    };

    Объявить простую переменную, массив структур, указатель на структуру: struct sprav tel1, tel2[5], *tel3;

    2. Установить структурный шаблон с помощью макроопределения:

    #define SPRAV struct sprav

    SPRAV {

    char fio[20];

    Long num;

    };

    Объявить переменные:

    SPRAV sp1, sp2[6], *sp3;

    3. Объявить переменные одновременно с установкой шаблона (если на данную структуру вы больше не ссылаетесь):

    struct {

    char fio[20];

    Long num;

    } tel1, tel2[3], *tel3;

    4. Ввести новый тип данных (TEL)-структура определенного вида:

    typedef struct {

    char fio[20];

    Long num;

    } TEL;

    Объявить переменные нового типа:

    TEL tel1, tel2[6], *tel3;

    Если программа достаточно объемна, представляется более удобным четвертый способ.

    Инициализация структуры

     

    Инициализировать можно только внешние или статические структуры.


    static struct {

    char fio[20];

    Long num;

    } tel[2]={

    " Иванов Ф.А.", 456756,

    " Петров В.П.", 632345

    };

    Доступ к компонентам структуры

    Доступ к компонентам структуры продемонстрируем с помощью примеров.

    Пример 1.


    /* Обращение к элементам структуры через имя переменной */

    #include < stdio.h>

    #include < conio.h>

    Void main(void)

    {

    struct{

    char fio[20]; /* фамилия */

    long num; /* телефон */

    } tel1, tel2;

    Clrscr();

    puts(" введите фио абонента-");

    Gets(tel1.fio);

    puts(" введите его номер-");

    scanf(" %ld", & tel1.num);

    tel2=tel1; /* нельзя так же сравнивать структуры */

    puts(" Введено: ");

    printf(" Фамилия: %s номер: %ld\n", tel2.fio, tel2.num);

    }

    Пример 2.

    /* Динамическое выделение памяти для структуры */

    /* Обращение к элементам структуры через указатель */

    #include < stdio.h>

    #include < conio.h>

    #include < alloc.h>

    struct sprav {

    char fio[20];

    Long num;

    };

    Void main(void)

    {

    struct sprav *tel1, *tel2;






    © 2023 :: MyLektsii.ru :: Мои Лекции
    Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
    Копирование текстов разрешено только с указанием индексируемой ссылки на источник.