
19. Многомерные массивы
В языке С можно пользоваться массивами, размерность которых больше двух. Общая форма объявления многомерного массива следующая:
тип имя_массива [Размер1][Размер2]...[РазмерN];
Массивы, у которых число измерений больше трех, используются довольно редко, потому что они занимают большой объем памяти. Например, четырехмерный массив символов размерностью 10x6x9x4 занимает 2160 байтов. Если бы массив содержал 2-байтовые целые, потребовалось бы 4320 байтов. Если бы элементы массива имели тип double, причем каждый элемент (вещественное число двойной точности) занимал бы 8 байтов, то для хранения массива потребовалось бы 17280 байтов. Объем требуемой памяти с ростом числа измерений растет экспоненциально. Например, если к предыдущему массиву добавить пятое измерение, причем его толщину по этому измерению сделать равной всего 10, то его объем возрастет до 172800 байтов.
При обращении к многомерным массивам компьютер много времени затрачивает на вычисление адреса, так как при этом приходится учитывать значение каждого индекса. Поэтому доступ к элементам многомерного массива происходит значительно медленнее, чем к элементам одномерного.
Передавая многомерный массив в функцию, в объявлении параметров функции необходимо указать все размеры измерений, кроме самого левого. Например, если массив m объявлен как
int m[4] [3] [6] [5];
то функция, принимающая этот массив, должна быть объявлена примерно так:
void func1(int d[][3][6][5])
{
/* ... */
}
Конечно, можно включить в объявление и размер 1-го измерения, но это излишне.
20.Способы ввода данных в программу.
способы ввода данных принтф, присваивание в самой программе(а=1), и через файл.
21.Арифметические операции
+ |
Прибавляет величину, находящуюся справа, к величине, стоящей слева |
- |
Вычитает величину, стоящую справа, из величины, указанной слева |
- |
Будучи унарной операцией, изменяет знак величины, стоящей справа |
* |
Умножает величину справа на величину, находящуюся слева |
/ |
Делит величину, стоящую слева, на величину справа. Результат усекается, если оба операнда целые числа |
% |
Дает остаток от деления величины слева на величину, стоящую справа (только для целых чисел) |
++ |
Прибавляет 1 к значению переменной, стояшей слева (префикная форма), или к переменной, стояшей справа (постфиксная форма) |
-- |
Аналогично ++, но вычитает 1 |
22. Логические операции
Обычно логические операции "считают" условные выражения операндами. Операция ! имеет один операнд, расположенный справа. Остальные операции имеют два операнда: один слева и один справа.
&& |
Логическое И: результат операции имеет значение "истина", если оба операнда истинны, и "ложь" в противном случае. |
|| |
Логическое ИЛИ: результат операции имеет значение "истина", если один или оба операнда истинны, и "ложь" в противном случае. |
! |
Логическое НЕ: результат имеет значение "истина", если операнд имеет значение "ложь", и наоборот. |