ЗАМЕЧАНИЕ
Обратите внимание на то, что каждое измерение записывается в своих
квадратных скобках.
В примере к переменной y добавляется значение элемента массива matr,
находящееся на пересечении i-й строки и j-го столбца матрицы.
Аналогично выполняется работа с трехмерными и имеющими большее
число измерений массивами.
Важным элементом программирования является возможность задания
значений переменной при объявлении. В некоторых языках, например,
принадлежащих к Паскаль-семейству, по умолчанию все переменные
инициализируются нулем. В Си по умолчанию переменным не
присваивается
никакого
значения,
что
служит
источником
трудноуловимых ошибок, ведь значение неинициализированной явным
образом переменной соответствует случайному числу, находившемуся в
данной ячейке памяти до запуска программы. Причем может оказаться, что
50 раз при запуске там случайно оказывается, например, ноль и программа
работает штатно, а затем происходит неожиданный сбой на 51-м запуске,
когда в данной ячейке будет иное значение. В связи с этим хорошим тоном
в программах на Си является запись вида
int k=0,b
=2; /* инициализация при объявлении */
float z=3.21;
98
Подобным образом можно инициализировать и массивы:
int a[7]={-7,0,1,2,15,21,-
1}; /* одномерный массив*/
char ima[20]="дядя Ваня"; /* строка — массив символов */
int mat[2][3]={ {1, 2, 3},
{-1,0, 1}
};
Как и в других языках программирования, в Си возможно создание на
основе базовых типов данных более сложных конструкций. В некоторых
языках подобного рода конгломераты называются записями, в других —
структурами и т. д.
Идея структуры состоит в том, что под одним именем группируются сразу
несколько параметров (элементов данных). Можно попытаться описать,
например, гоночный автомобиль следующим набором параметров:
мощность двигателя (целое число лошадиных сил), изготовитель (строка
символов), тип мотора (строка символов), количество передач (целое
число), максимальная скорость (число с плавающей точкой). В языке
программирования Си возможно объявление соответствующей данному
описанию структуры:
struct
{
int Power;
char Manufacturer[40];
char Motor[40];
int transmissons;
float MaxSpeed;
} Auto;
После этого объявления можно обращаться к отдельным элементам
данных структуры Auto. Делается это следующим образом, например:
Auto.Power=340;
Auto.MaxSpeed=380.2;
scanf("%s",Auto.Manufacturer);
Помимо простого объявления структуры в языке Си возможно объявление
структуры с определением нового типа данных с именем, совпадающим с
именем структуры. Для этого используется ключевое слово typedef. В
приведенном примере, например, заголовок мог бы выглядеть следующим
образом:
typedef struct {…} Auto;
После этого можно объявлять переменные нового типа Auto, например:
Auto car,car2;
99
Дальнейшее обращение к членам данных переменных car и
сar2
производится стандартным образом, например: car.Power, car.Motor
и т. д.
Достарыңызбен бөлісу: |