Что такое массив. Общая форма объявления массивов — КиберПедия 

Таксономические единицы (категории) растений: Каждая система классификации состоит из определённых соподчиненных друг другу...

Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...

Что такое массив. Общая форма объявления массивов

2017-11-15 430
Что такое массив. Общая форма объявления массивов 0.00 из 5.00 0 оценок
Заказать работу

Массив — это упорядоченная последовательность величин, обозначаемая

одним именем.

Общая форма объявления массива:

Тип имя [размер массива];

Пример

float data[245];

Каким образом связаны массивы и указатели

В ряде случаев операции с массивами можно свести к операции с указателями

Форма обращения к элементам массива с помощью указателей следующая:

• data[0] == *p1;

• data[1] == *(p1+1);

• data[2] == *(p1+2);

• …,

• data[i] == *(p1+i);

• …,

• data[n-1] == *(p1+n-1).

Операции над указателями p1 и p2:

• p1 == p2 — проверка на равенство;

• p1!= p2 — проверка на неравенство;

• p1 < p2 — сравнение указателей на меньше;

• p1 <= p2 — сравнение указателей на меньше или равно;

• p1 > p2 — сравнение указателей на больше;

• p1 >= p2 — сравнение указателей на больше или равно;

• p1 - p2 — вычисление количества элементов между p1 и p2;

• p1 + i — наращивание указателя на i элементов;

• p1 - i — уменьшение значения указателя на i элементов.

Пример. Связь между указателями и именами массивов

#include <stdio.h>

main()

{

int i;

float data [5], *p;

printf("\n Начальный адрес массива data - %u.", data);

printf("\n Адрес элемента массива data[0] - %u.",

&data[0]);

printf("\n Адрес третьего элемента массива - %u.",

&data[3]);

p=data; /* p= & data [0]; */

for (i=0; i<=4; i=i+1)

{

printf("\n Адрес %d-го элемента массива data равен

%u.", p+i);

printf("\n Значение %d-го элемента массива data

равно %f.", &data[i]);

}

}

 

Способы инициализации массивов

Существует два способа инициализации массива:

1. Указание начальных значений при объявлении массива.

2. Организация цикла последовательного ввода значений элементов массива.

Общая форма инициализации массива при объявлении

тип имя [n]={значение1,

значение2,

значение3,

...,

значениеn};

26. Каким образом осуществляется передача массива в функцию. Проиллюстрировать примером.

Обработку массивов удобно организовывать с помощью специальных

Функций. Если функции передается массив, то на самом деле внутрь функции

попадает только адрес массива. Фактически в функцию передаются: 1) адрес

массива, 2) размер массива. Исключение составляют функции обработки строк, в

которые передаются только адреса.

Рассмотрим пример программы, в которой функция modify() увеличивает

На 1 значение каждого элемента массива data.

#include <stdio.h>

void modify (int * a, int size)

{

int i;

for (i=0; i<= size, i++)

*(a+i) =*(a+i) + 1;

/* a[i] = a[i]+1;*/

}

main()

{ int data[]= {-12,14,-10,16,22};

int i;

printf("\n Исходный массив: ");

for (i=0; i<=4; i++)

printf("\n data[%d] =%d", i,data[i]);

modify(data, 4); 44

printf("\n Модифицированный массив: ");

for(i=0; i<=4; i++)

printf("\n data[%d]=%d", i, data[i]);

}

 

27. Понятие многомерного массива: форма объявления, расположения в памяти ЭВМ, для чего применяются.

В языке Си массивы бывают не только одномерные, но и многомерные.

Отличие состоит в том, что в одномерном массиве положение элемента

определяется одним индексом, а в многомерном — несколькими.

Общая форма объявления многомерного массива

тип имя_массива [индекс_1]

[индекс_2]

.....

[индекс_n];

Элементы многомерного массива располагаются в последовательных ячейках

оперативной памяти по возрастанию адресов. Между элементами нет разрывов. В

памяти ЭВМ элементы располагаются построчно таким образом, что быстрее всего

меняется последний индекс.

Приример расположения в памяти ЭВМ двухмерного массива int d[3][4]

d[0][0] d[0][1] d[0][2] d[0][3]

d[1][0] d[1][1] d[1][2] d[1][3]

d[2][0] d[2][1] d[2][2] d[2][3]

Пример расположения в памяти ЭВМ трехмерного массива int d[2][2][2]

d[0][0][0] d[0][0][1]

d[0][1][0] d[0][1][1]

d[1][0][0] d[1][0][1]

d[1][1][0] d[1][1][1]

Применение двухмерных массивов. Двумерные массивы, как правило,

отождествляются с матрицами, поэтому типовыми задачами, в которых

применяются двухмерные массивы, являются задачи с матрицами:

транспонирование матриц, вычисление определителя, определение средних

значений матрицы и так далее.

Понятие динамического выделения памяти, формат функции malloc(), преимущества динамического выделения памяти.

Malloc -функция динамического распределения памяти.

Описание функции malloc(). Функция malloc() динамически распределяет

блок памями размером size байт. Возвращаемое значение — указатель на

выделенную область памяти.

Динамическое выделение памяти под массивы. Преимущества динамического выделения, графическое представление выделения памяти под одномерный массив.


Поделиться с друзьями:

Таксономические единицы (категории) растений: Каждая система классификации состоит из определённых соподчиненных друг другу...

Механическое удерживание земляных масс: Механическое удерживание земляных масс на склоне обеспечивают контрфорсными сооружениями различных конструкций...

Адаптации растений и животных к жизни в горах: Большое значение для жизни организмов в горах имеют степень расчленения, крутизна и экспозиционные различия склонов...

Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначен­ные для поддерживания проводов на необходимой высоте над землей, водой...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.013 с.