int intMatrix[ 10 ][ 5 ] ;
Эта матрица может иметь 10 элементов в одном измерении и 5 в другом, что в сумме составляет 50 элементов. Другими словами, intMatrix является 10-элементным массивом, каждый элемент которого — массив из 5 элементов. Легко догадаться, что один угол матрицы обозначается intMatrix[ 0 ][ 0 ], тогда как второй — intMatrix[ 9 ][ 4 ].
Индексы intMatrix можно рассматривать в любом удобном порядке. По какой оси отложить длину 10 — решайте сами, исходя из удобства представления. Матрицу можно инициализировать так же, как и массив:
int intMatrix[ 2 ][ 3 ] = { { 1 , 2 , 3 } , { 4 , 5 , 6 } } ;
Здесь фактически выполняется инициализация двух трёхэлементных массивов: intMatrix[ 0 ] — значениями 1, 2 и 3, a intMatrix[ 1 ] — 4, 5 и 6 соответственно.
►Использование символьных массивов...98
Элементы массива могут быть любого типа. В С++ возможны массивы любых числовых типов — float, double, long, однако символьные массивы имеют особое значение.
Слова разговорной речи могут быть интерпретированы как массивы символов. Массив символов, содержащий моё имя, таков:
char sMyName[ ] = { 'S' , ' t' , 'e' , 'p' , 'h' , 'e' , 'n' } ;
Моё имя можно отобразить с помощью следующей небольшой программы:
/* CharDisplay — выводит на экран массив символов в окне MS DOS */
#include <cstdio>
#include <cstdlib>
#include <iostream>
using namespace std ;
/* Объявления прототипов */
void displayCharArray( char stringArray[ ] , int sizeOfloatArray ) ;
int main( int nArg , char* pszArgs[ ] )
{
char charMyName[ ] = { 'S' , 't' , 'e' , 'p' , 'h' , 'e' , ' n' } ;
displayCharArray( charMyName , 7 ) ;
cout << endl ;
/* Пауза для того, чтобы посмотреть на результат работы программы */
system( "PAUSE" ) ;
return 0 ;
}
_________________
98 стр. Часть 2. Становимся функциональными программистами
/* displayCharArray — отображает массив символов, по одному при каждой итерации */
void displayCharArray( char stringArray[ ] , int sizeOfloatArray )
{
for ( int i = 0 ; i < sizeOfloatArray ; i++ )
{
cout << stringArray[ i ] ;
}
}
В программе объявлен фиксированный массив символов, содержащий, как вы могли заметить, моё имя. Этот массив передаётся в функцию displayCharArray( ) вместе с его длиной. Функция displayCharArray( ) идентична функции displayArray( ) из нашего предыдущего примера, но в этом варианте вместо целых чисел она выводит символы.
Программа работает довольно хорошо; но одно неудобство всё-таки есть: всякий раз вместе с самим массивом необходимо передавать его длину. Однако можно придумать правило, которое поможет решить нашу проблему. Если бы мы знали, что в конце массива находится специальный кодовый символ, то не потребовалось бы передавать размеры массива.
Создание строки символов...99
В С++ для этой цели зарезервирован нулевой символ. Мы можем использовать '\0' для того, чтобы пометить конец символьного массива. ( Числовое значение '\0' равно нулю, однако тип '\0' — char. )
«Символ \у является символом, числовое значение которого равно у. Изменим предыдущую программу, используя это правило:»
[Помни!]
/* DisplayString — выводит на экран массив символов в окне MS DOS */
#include <cstdio>
#include <cstdlib>
#include <iostream>
using namespace std ;
/* Объявления прототипов */
void displayString( char stringArray[ ] ) ;
int main( int nArg , char* pszArgs[ ] )
{
char charMyName[ ] ={ 'S' , 't' , 'e' , 'p' , 'h' , 'e' , 'n' , 0 } ;
displayString( charMyName ) ;
cout << endl ;