Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
методичка по С++.doc
Скачиваний:
7
Добавлен:
28.08.2019
Размер:
250.88 Кб
Скачать

5.6. Двумерные массивы

Двумерный массив a[2][3] можно представить в виде таблицы

a[0][0]

a[0][1]

a[0][2]

a[1][0]

a[1][1]

a[1][2]

В памяти массив будет располагаться непрерывно по строкам, т.е. a[0][0], a[0][1], a[0][2], a[1][0], a[1][1], и т.д.

Пример.

#include <stdio.h>

#include <string.h>

int main()

{

char text[4][10];

strcpy(text[0], "Turbo");

strcpy(text[1], "Basic");

strcpy(text[2], "Pascal");

strcpy(text[3], "C");

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

puts(text[i]);

return 0;

}

Заполнение массива text проиллюстрируем следующей таблицей.

T

u

r

b

o

\0

B

a

s

i

c

\0

P

a

s

c

a

l

\0

C

\0

5.7. Инициализация массивов

Инициализация — это присваивание элементам массива некоторых начальных значений в момент объявления массива. Приведем примеры инициализации одномерных и двумерных массивов.

float f[3]={0,-1.52,23.2};

char s[20]={"Borland C++"};

int a1[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};

int a2[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};

В случае с массивом символов нулевой байт будет добавлен автоматически. Инициализации массивов a1 и a2 эквивалентны. Если инициализаторов меньше, то оставшиеся значения элементов массива остаются не определенными.

int a3[3][4]={1,2,3,4,5,6,7,8,9};

int a4[3][4]={{1,2,3},{4,5},{6,7,8,9}};

Массивы a3 и a4 будут заполнены следующим образом:

a3

1

2

3

4

a4

1

2

3

5

6

7

8

4

5

9

6

7

8

9

Допускается объявление и инициализация массива без явного указания его размера. При этом компилятор сам определит необходимое количество элементов массива, включая нулевой байт для строк.

Пример.

char s[]={"Program"};

int mass[]={1,2,3,4};

Можно не указывать размер только в самых левых квадратных скобках.

int a[][3]={1,2,3,4,5,6,7,8,9};

В последнем примере компилятор определит размер массива, как три на три.