Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Обращение к элементам массива
Как вы уже знаете, массив позволяет вашим программам хранить несколько значений в одной и той же переменной. Для обращения к определенным значениям, хранящимся в массиве, используйте значение индекса, которое указывает на требуемый элемент. Например, для обращения к первому элементу массива test_scores вы должны использовать значение индекса 0. Для обращения ко второму элементу используйте индекс 1. Подобно этому, для обращения к третьему элементу используйте индекс 2. Как показано на рис. 16.1, первый элемент массива всегда имеет индекс 0, а значение индекса последнего элемента на единицу меньше размера массива: Рис. 16.1. Как C++ индексирует элементы массива. Важно помнить, что C++ всегда использует 0 для индекса первого элемента массива, а индекс последнего элемента на единицу меньше размера массива. Следующая программа ARRAY. CPP создает массив с именем values, который вмещает пять целочисленных значений. Далее программа присваивает элементам значения 100, 200, 300, 400 и 500: #include < iostream.h> void main(void) { Как видите, программа присваивает первое значение элементу 0 (values[0]). Она также присваивает последнее значение элементу 4 (размер Массива (5) минус 1). Использование индекса для обращения к элементам массива Массив позволяет вашим программам хранить несколько значений внутри одной и той же переменной. Для обращения к определенному значению внутри массива программы используют индекс. Говоря кратко, значение индекса указывает требуемый элемент массива. Все массивы C++ начинаются с элемента с индексом 0.Например, следующий оператор присваивает значение 100первому элементу массива с именем scores: scores[0] = 100; Когда ваша программа объявляет массив, она указывает количество элементов, которые массив может хранить. Например, следующий оператор объявляет массив, способный хранить 100 значений типа int. int scores[100]; В данном случае массив представляет собой элементы отscores[0] до scores[99]. Использование индексной переменной Если ваши программы используют массив, обычной операцией является использование индексной переменной для обращения к элементам массива. Например, предположим, что переменная / содержит значение 3, следующий оператор присваивает значение 400 элементу values[3J: values = 400; Следующая программа SHOWARRA.CPP использует индексную переменную i внутри цикла for для вывода элементов массива. Цикл for инициализирует i нулем, так что программа может обращаться к элементуvalues[O]. Цикл for завершается, когда i больше 4 (последний элемент массива): #include < iostream.h> void main (void) { Каждый раз, когда цикл for увеличивает переменную i, программа может обратиться к следующему элементу массива. Экспериментируйте с этой программой, изменяя цикл for следующим образом: for (i = 4; i > = 0; i–) cout < < values < < ‘ ‘; В данном случае программа будет выводить элементы массива от большего к меньшему. ИНИЦИАЛИЗАЦИЯ МАССИВА ПРИ ОБЪЯВЛЕНИИ Как вы уже знаете, C++ позволяет вашим программам инициализировать переменные при объявлении. То же верно и для массивов. При объявлении массива вы можете указать первоначальные значения, поместив их между левой и правой фигурными скобками, следующими за знаком равенства. Например, следующий оператор инициализирует массив values: int values[5] = { 100, 200, 300, 400, 500 }; Подобным образом следующее объявление инициализирует массив с плавающей точкой: float salaries[3] = { 25000.00. 35000.00, 50000.00 }; Если вы не указываете первоначальное значение для какого-либо элемента массива, большинство компиляторов C++ будут инициализировать такой элемент нулем. Например, следующее объявление инициализирует первые три из пяти элементов массива: int values[5] = { 100, 200, 300 }; Программа не инициализирует элементы values[3] и values[4]. В зависимости от вашего компилятора, эти элементы могут содержать значение 0. Если вы не указываете размер массива, который вы инициализируете при объявлении, C++ распределит достаточно памяти, чтобы вместить все определяемые элементы. Например, следующее объявление создает массив, способяый хранить четыре целочисленных значения: int numbers[] = { 1, 2, 3, 4 }; ПЕРЕДАЧА МАССИВОВ В ФУНКЦИИ Ващи программы будут передавать массивы в функции точно так же, как и любые другие переменные. Функция может инициализировать массив, прибавить к массиву значения или вывести элементы массива на экран. Когда вы передаете массив в функцию, вы должны указать тип массива. Нет необходимости указывать размер массива. Вместо этого вы передаете параметр например number_of_elements, который содержит количество элементов в массиве: void some_function(int array[], int number_of_elements); Следующая программа ARRAYFUN.CPP передает массивы в функциюshow_array, которая использует цикл for для вывода значений массивов: #include < iostream.h> void show_array (int array [], int number_of_elements) { void main(void) { Как видите, программа просто передает массив в функцию по имени, а также указывает параметр, который сообщает функции количество элементов, содержащихся в массиве: show_array(little_numbers, 5); Следующая программа GETARRAY.CPP использует функцию get_values, ч тобы присвоить три значения массиву numbers: #include < iostream.h> void get_values(int array[], int number_of_elements) { { void main(void) { Как видите, программа передает массив в функцию по имени. Функция в свою очередь присваивает массиву элементы. Из урока 10 вы узнали, что, пока ваша программа не передаст параметры в функцию с помощью адреса, функция не может изменить эти параметры. Однако, как можно заметить в данном случае, функция get_values изменяет параметр-массивnumbers. Как вы узнаете из урока 20, C++ действительно передает массивы в функцию, используя указатели. Таким образом, функция может изменить элементы массива, если ей это нужно. ЧТО ВАМ НЕОБХОДИМО ЗНАТЬ Из этого урока вы узнали, что ваши программы могут хранить несколько значений одного и того же типа внутри массива. Программы на C++широко используют массивы. Из урока 17 вы узнаете, что программы могут использовать массивы для хранения символьных строк. До изучения урока 17 убедитесь, что вы освоили следующие основные концепции: 1. Массив представляет собой переменную, которая может хранить одно или несколько значений одного и того же типа. 2. Для объявления массива вам следует указать тип, имя массива, а также количество значений, хранящихся в массиве. 3. Значения внутри массива называются элементами массива. 4. Первый элемент массива хранится как элемент 0(array[OJ), индекс последнего элемента массива на единицу меньше размера массива. 5. Программы часто используют индексные переменные для обращения к элементам массива. 6. Если функция воспринимает массив как параметр, она должна указать тип и имя, но не размер массива. 7. Если программа передает массив в функцию, она, как правило, передает и параметр, который сообщает функции количество элементов содержащихся в массиве. 8. Так как C++ передает массив в функцию с помощью адреса массива функция может изменять значения, содержащиеся в массиве. Символьные строки хранят такую информацию, как имена файлов, названия книг, имена служащих и другие символьные сочетания. Большинство программ на C++ широко используют символьные строки. Далее вы узнаете, что в C++ символьные строки хранятся в массиве типаchar, который заканчивается символом NULL (или ASCII 0). В данном уроке символьные строки рассматриваются более подробно. Вы узнаете, как хранить и обрабатывать символьные строки, а также как использовать функции библиотеки этапа выполнения, которые манипулируют символьными строками. К концу этого урока вы освоите следующие основные концепции:
Программы на C++ хранят символьные строки как массив типа char.Большинство программ широко используют символьные строки. Экспериментируйте с каждой программой, представленной в этом уроке, чтобы освоиться с символьными строками. Вы обнаружите, что работа с символьными строками подобна работе с массивами, описанной в уроке 16. Популярное:
|
Последнее изменение этой страницы: 2016-05-30; Просмотров: 1379; Нарушение авторского права страницы