Студопедия

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

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

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






  • К элементам одномерных массивов






     

    Объявление одномерного массива с явным указанием количества элементов массива:

    < тип_элементов_массива> < имя_массива> [< количество_элементов> ];

    Обращение к элементам одномерного массива в общем случае можно представить индексированием:

    < имя_массива> [< выражение> ];

    где < имя_массива> – указатель–константа, адрес нулевого элемента массива; < выражение> определяет индекс элемента массива.

    Элементы одномерного массива располагаются в ОП последовательно друг за другом: нулевой, первый и т.д. При объявления массива

    int а[10];

    компилятор выделяет массиву ОП для размещения его элементов в размере sizeof(< тип_элементов_массива>)*< размер_массива> байт, т.е. 4 ∙ 10 = 40 байт. Запись & a[i] равносильна записи (а + i). В программе & a[i] или (а + i) определяет адрес i-го элемента массива. На машинном уровне (в соответствии с определением операций над указателями) адрес i-го элемента массива & a[i] формируется в виде а + i*sizeof(int).

    В связи с вышеизложенным, будут справедливы соотношения:

    & а а + 0 & а[0] – адрес нулевого элемента массива а;

    а + 2 & а[2] – адрес второго элемента массива а;

    а + i & a[i] – адрес i-го элемента массива а;

     

    *(а + 0) *(& а[0]) а[0] – значение нулевого

    элемента массива а;

    *(а+2) а[2] – значение второго элемента массива;

    *(а + i) a[i] – значение i-го элемента массива;

     

    *а + 2 а[0] + 2 – сумма значений а[0] и 2.

    Если р – указатель на тип данных, совпадающий с типом элементов массива а и адрес, который содержит указатель р, совпадает с адресом массива а, то а и р взаимозаменяемы. При этом

    р & а[0] а + 0;

    р + 2 & а[2] а + 2;

    *(р + 2) *(& а[2]) а[2];

    *(p + i) *(& a[i]) a[i].






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