Введение в массивы на C
Массив – это структура данных, используемая для хранения последовательных элементов одного и того же типа данных. Положение элемента в последовательности называется индексом. Индексы начинаются с 0 до (n-1).
В этой статье вы узнаете, как использовать массивы в C. Большинство представленных здесь концепций пересекаются с большинством других языков программирования, поэтому обязательно обратите на них внимание.
Определение массивов
Чтобы определить массив, напишите его тип данных, за которым следует имя массива и квадратные скобки:
int age[8];
В квадратных скобках указано ожидаемое количество элементов данных, которые получит массив. Если вам нужно объявить два массива одновременно, вы можете сделать это, как показано ниже. Стоит отметить, что объявление их по отдельности является предпочтительным способом.
int age[8], height[8];
Также можно объявить массив, как показано ниже:
int[8] age;
Приведенный выше синтаксис означает, что age является указателем на массив типа int . Хотя вы можете использовать «синтаксис указателя», предпочтительнее первый.
Иногда вы можете не знать, сколько элементов вы ожидаете от массива. В таком случае вам придется объявить массив без количества элементов. См. Пример ниже:
int age[];
Операции с массивами
Чтобы ссылаться на элемент массива, напишите имя массива, а затем его индекс в квадратных скобках (например, age [5] ). Вы также можете использовать переменные внутри квадратных скобок:
age[x+y]
Вам необходимо убедиться, что вычисление этих переменных находится в диапазоне от 0 до (n-1). В противном случае вы получите ошибку компиляции.
Инициализация
Элементы массива могут быть указаны при объявлении или позже в программе. Это действие называется инициализацией, поскольку изначально массив имеет нулевые значения.
См. Пример ниже. Он печатает значение элемента и его индекс в массиве. Строка 5 использует список инициализаторов для инициализации целочисленного массива.
#include <stdio.h>
int main(void) {
printf("%s%11s
", "Element", "Value");
int n[4] = {1, 4, 9, 16};
// output array elements in tabular format
for (size_t i = 0; i < 4; ++i) {
printf("%5u%10d
", i, n[i]);
}
}
Выход :
Element Value
0 1
1 4
2 9
3 16
Использование массивов для хранения строк
Массивы также могут использоваться для хранения строк, а не только целых чисел. При использовании таким образом не забудьте включить одинарные кавычки для каждого элемента в списке инициализатора.
char fruit[]= ['b', 'e', 'r', 'r', 'y', ' ' ];
Обратите внимание, что используется тип данных char . Строковый литерал на самом деле состоит из отдельных символов, поэтому вы видите char .
Показанный массив заканчивается escape-последовательностью ( 0 ). Это символ завершения строки, называемый нулевым символом. Вы всегда должны включать это при инициализации списка массивов.
На самом деле существует более простой способ инициализировать массив символов. Сначала мы показали первый подход, чтобы вы знали, что массив символов всегда имеет специальный конечный символ ( 0 ). Распространенная ошибка начинающих программистов – уменьшить размер массива на единицу, забыв о последнем элементе ( 0 ).
char string1[5] = "Code";
Предположим, вам нужно получить ввод пользователя и сохранить его в массиве. Для этого вы можете использовать стандартную библиотечную функцию scanf .
Однако вам необходимо указать количество символов, которое должна ожидать функция. Это связано с тем, что scanf не проверяет размер массива и может записывать данные по адресам за пределами массива, вызывая переполнение буфера.
Используйте спецификатор преобразования % s, чтобы определить максимальный ожидаемый ввод. Функция scanf будет читать все введенные символы до тех пор, пока не встретится пробел, табуляция, новая строка или индикатор конца файла.
Развитие вашего программирования на C
Ресурсы, которые вы используете для обучения, так же важны, как и ваше рвение к обучению. Обучение без хорошей практики сделает ваше путешествие по программированию сложным.
C – особенно сложный язык для изучения, поскольку он не объектно-ориентированный. К счастью, у нас есть много ресурсов, которые помогут вам освоить программирование на C.