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


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

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






Лекция 11. Инициализация массивов





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

В языке С++ предусмотрена возможность инициализации массивов двумя способами: либо с указанием размера массива, либо без явного указания.

Формат инициализации:

<тип><имя массива>[<размер>] = {<список значений>};

Здесь тип каждого значения инициализации должен совпадать с базовым типом массива.

Примеры:

 

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

int ARRAY[6] = {1,2,3}; // 6 элементов

 

В массиве ARRAY проинициализированы только три элемента, остальные не определены.

Если в определении массива задан его размер. То количество начальных значений не должно превышать его длину.

Пример:

float B[4] = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0}; //ошибка

char STR[7] = {‘a’, ‘b’, ‘a’, ‘b’, ‘a’, ‘b’,’\0’}; // верно

 

Строки можно инициализировать еще одним способом:

 

char <имя массива>[<размер>] = “<строка>”;

 

Например:

 

char STR[7] =”abcdef”;

 

Это определение строки эквивалентно следующей конструкции:

 

char STR[7] = {‘a’, ‘b’, ‘c’, ‘d’, ‘e’, ‘f’,’\0’};

 

Многомерные массивы инициализируются по аналогии с одномерными.

При инициализации многомерных массивов начальные значения нужно размещать в порядке расположения элементов в памяти компьютера.

Например:

 

int MATR[5][2] = { 1,1,

2,4,

3,9,

4,16,

5,25

};

Здесь MATR[0][0]=1; MATR[0][1]=1; MATR[1][0]=2; MATR[1][1]=4; …

MATR[4][0]=5; MATR[4][1]=25.

При инициализации многомерного массива список инициализаторов каждой размерности можно заключать в {…}.

Например:

 

int MATR[5][2] = { { 1,1},

{2,4},

{3,9},

{4,16},

{5,25}

};

При использовании подгрупп инициализаторов недостающие члены подгруппы инициализируются нулевыми значениями.

Язык С++ позволяет не указывать длину массива. Компилятор определяет её автоматически путем подсчета количества инициализаторов.

Например:

 

int MAS[ ] = {1,2,3,4}; // 4 элемента

int STR[ ] = ”abcdefgh”; // 9 элементов

 

С помощью операции sizeof(<имя массива>) можно определить размер массива в байтах. Так как элементы массива имеют один и тот же тип, то количество элементов массива можно определить так:

 

sizeof(<имя массива>)/sizeof(<имя массива>[0]);

 

Массивы строк.

 

Для создания массива строк используется двумерный символьный массив, в котором размер левого индекса определяет количество строк, а размер правого – максимальную длину каждой строки.

Например:

 

char str[30][80]; // 30 строк по 80 символов

gets(str[2]); // ввести третью строку массива str.

Для доступа к конкретному символу можно использовать следующую конструкцию:

 

cout << str[2][3]; // вывод 4-го символа 3-ей строки.

 

Пример использования массива строк для телефонного справочника

#include <iostream.h>

#include <stdio.h>

void main()

{ int i; char str[80];

char numbers[10][80] = {

“Маша”, “129-34-01“,

“ Олег”, “371-16-55“,

“Наташа”, “241-25-09“,

“Саша”, “971-18-04“,

“Лена”, “962-01-10“

};

cout << “Введите имя:”;

cin >> str;

for (i = 0; i<10; i+=2)

if (!strcmp(str,numbers[i]))

{ cout << “Телефонный номер: ” << numbers[i+1] << “\n”;

break;

}

if (i== 10) cout << “Отсутствует в справочнике. \n”;

}

 

Вопросы

1.Укажите правильное определение массива

1.int f[ ];

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

3.int f[10];

Правильный ответ-2,3.

 

Date: 2015-12-12; view: 371; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.006 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию