Введение в программирование массивов на C
Массив - это тип структуры данных, который используется для хранения однородных данных в смежных местах памяти.
Здесь индекс относится к расположению элемента в массиве. Давайте представим, что A (L) - это имя массива, где «A» - это имя переменной, а «L» - длина массива, то есть количество элементов, присутствующих в массиве.
Тогда A (i) представляет элемент в этой позиции «i + 1» в массиве. Например:
A (6) = 72 означает элемент в 6 + 1-ом местоположении массива.
Нужно для массива
Это помогает представлять большое количество элементов, используя одну переменную. Это также упрощает доступ к элементу для хранения в ячейке памяти, используя индекс массива, который представляет местоположение элемента в массиве.
Доступ к элементам в массиве
Доступ к любому элементу в массиве намного проще и может быть сделан в сложности O (1)
Индексы массива начинаются от 0 до -1, 0 указывает на первый элемент массива, а -1 указывает на последний элемент массива. Аналогично, -2 указывает на последний, но один элемент массива.
Например:
Пусть A - массив длиной 7, и нужно получить доступ к элементу со значением 94, тогда он должен использовать A (3).
Синтаксис
printf (”% d”, A (3)) - это выведет 94, где 3 - это индекс, к которому мы должны получить доступ, а a - это переменная массива.
Объявление массива в C
В C массив должен быть объявлен правильно, прежде чем использовать его с его именем и длиной. Существует три синтаксиса, в которых мы можем объявить массивы в программе переменного тока.
Синтаксис 1
int A (7) = (21, 56, 32, 52, 63, 12, 48) - Объявление длины и элементов массива
Программа C
#include
int main(
int a(7) = (21, 56, 32, 52, 63, 12, 48);
int i;
for(i=0;i<7;i++)(
printf(“%d\n”, a(i));
)
return 0;
)
Выход:
Синтаксис 2
int A () = (21, 56, 32, 52, 63, 12, 48) - Объявление длины элементов массива
Программа C
#include
int main(
int a() = (21, 56, 32, 52, 63, 12, 48);
int i;
for(i=0;i<7;i++)(
printf(“%d\n”, a(i));
)
return 0;
)
Выход:
Синтаксис 3
int A (7); - Объявление длины только массива.
Программа C
#include
int main(
int a(7) ;
int i;
printf(“Please enter the array elements”);
for(i=0;i<7;i++)(
scanf(“%d\n”, &a(i));
)
printf(“Elements of array are”);
for(i=0;i<7;i++)(
printf(“%d\n”, a(i));
)
return 0;
)
Выход:
Синтаксис 4
int A (7) = (0); - объявляет длину массива и элемента, когда элемент одинаков во всех позициях.
Программа C
#include
int main(
int a(7)=(0) ;
int i;
printf(“Elements of array are”);
for(i=0;i<7;i++)(
printf(“%d\n”, a(i));
)
return 0;
)
Выход:
Синтаксис 5
Объявление длины массива, а также значения элементов, где все значения одинаковы
Case1 - int a (3) = ((0..1) = 3) -
Случай 2 - int a (3) = (0); -
Синтаксис 6
int * a; - Объявление массива как указателя на расположение элементов.
Нет индекса вне проверки
В случае, если кто-то пытается получить доступ к элементу за пределами массива, компилятор не выдает ошибку, вместо этого он генерирует предупреждение. А также дает неожиданный вывод.
пример
а (4) = (2, 3, 4, 5);
Если мы напишем printf (a (4));
Выход будет 225263545 - неожиданно
Кроме того, в Си компилятор не ошибается при инициализации массива с большим числом элементов, чем указанная длина в объявлении. Например, приведенная ниже программа не показывает ошибку вместо этого.
Программа C
#include
int main(
int arr(2)=(10, 22, 56, 32, 45, 89) ;
int i;
printf(“Elements of array are”);
for(i=0;i<2;i++)(
printf(“%d\n”, arr(i));
)
return 0;
)
Выход:
Извлечение элементов в массиве
Извлечение элементов массива и их печать - очень простая задача. Для печати n элементов массива требуется всего один цикл. таким образом, сложность такой программы составляет O (n).
Например, пусть int a (7) = (23, 56, 8, 944, 58, 24, 5);
Программа для печати элементов массива
Программа C
#include
int main(
int arr(7)=(23, 56, 8, 944, 58, 24, 5) ;
int i;
printf(“Elements of array are”);
for(i=0;i<7;i++)(
printf(“%d\n”, arr(i));
)
return 0;
)
Выход:
Многомерный массив
Язык C также допускает многомерные массивы, то есть массивы, которые могут содержать элементы в строках и столбцах.
декларация
При объявлении многомерного массива необходимо указать длину всех измерений, кроме левого, поскольку это необязательно.
пример
Объявление массива описанным ниже способом приведет к ошибке, так как размеры, отличные от самого левого, не указаны.
Int a () () (2) = (
((1, 2), (3, 4)),
((5, 6), (7, 8))
)
пример
Ниже приведен один из правильных синтаксисов для объявления многомерного массива в C.
Int a () (3) = (
(52, 56, 86), (44, 6, 21)
)
Передача массива в качестве параметра в функцию
Иногда при создании функции мы требуем, чтобы эта функция использовала ряд переменных, которые необходимо взять из разных функций. Тогда эти переменные должны быть переданы в качестве параметра для вызова этой функции. Но в конечном итоге, по мере увеличения числа переменных, мы должны использовать массив для передачи переменной, или в случае необходимости выполнения некоторых операций над массивами, также возникает необходимость передать полный массив в качестве параметра функции. Для передачи массива в качестве переменной в функцию:
1. Call по значению
При вызове метода такого типа фактические значения массива копируются в формальный параметр, где оба хранятся в разных местах, поэтому любое изменение значений не отражается в функции.
Программа C
#include
Void show( char ch)
(
printf("%c ", ch);
)
int main()
(
char arr() = ('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j');
for (int x=0; x<10; x++)
(
show(arr(x));//value of array //elements are passed as an argument
)
return 0;
)
Выход:
2. Позвоните по ссылке
При вызове функции, когда вместо передачи фактических значений массива ссылка на переменную передается в качестве параметра, тогда она называется вызовом по ссылке.
Программа C
#include
Void show( char ch)
(
printf("%c ", ch);
)
int main()
(
char arr() = (1, 2, 3, 4, 5, 6, 7, 8, 9, 0);
for (int x=0; x<10; x++)
(
show(&arr(x));//reference of array //elements are passed as an argument
)
return 0;
)
Выход:
3. Передача всего массива в качестве аргумента
Например, пусть arr будет массивом из 7 элементов. Disp - это функция для отображения элементов массива, которые принимают 2 аргумента, первый, который указывает на первое местоположение массива, а другой - длину массива (var2). Во время вызова передается переменная функции arr, которая указывает на местоположение первого элемента массива и длину, т.е.
Программа C
#include
void disp( int *var1, int var2)
(
for(int x=0; x (
printf("Value of var_arr(%d) is: %d \n", x, *var1);
/*increment pointer for next element fetch*/
var1++;
)
)
int main()
(
int var_arr() = (12, 22, 38, 85, 65, 66, 77);
disp(var_arr, 7);
return 0;
)#include
void disp( int *var1, int var2)
(
for(int x=0; x (
printf("Value of var_arr(%d) is: %d \n", x, *var1);
/*increment pointer for next element fetch*/
var1++;
)
)
int main()
(
int var_arr() = (12, 22, 38, 85, 65, 66, 77);
disp(var_arr, 7);
return 0;
)
Выход:
Распределение памяти массива
Представление памяти на языке Си считается разделенным на 5 секций, как указано ниже:
- Текстовый сегмент
- Инициализированный сегмент данных
- Неинициализированный сегмент данных
- стек
- отвал
Данные, куча и стек - это три сегмента, в которых массивам может быть выделена память для хранения его элементов, так же как и другие переменные.
- Динамические массивы. Динамические массивы - это массивы, для которых требуется место в памяти, выделяемое во время выполнения. Для этих типов массивов память выделяется в области памяти кучи.
- Глобальные или статические массивы. Это типы массивов, которые выделяются во время компиляции. Таким образом, память сегментов данных всегда выделяется для этих типов массивов.
- Локальные массивы . Массивы, которые инициализируются внутри функции или блока, называются локальными массивами. Эти типы массивов получают память, выделенную в сегменте стека.
Массив символов
В C строки рассматриваются как одномерный массив символов с нулевым символом '\ 0' в его последней позиции, который компилятор автоматически добавляет к нему.
Например, «я люблю кодирование» рассматривается как одноразмерный массив c длиной 14, включая символ «\ 0» в конце.
Объявление: есть 2 способа объявить и инициализировать массив символов:
- char str (12) = «я люблю код»;
- char str (12) = ('I', '', 'l', 'o', 'v', 'e', '', 'c', 'o', 'd', 'e, ' \ 0 ''); - Здесь мы должны заканчивать его символом '\ 0' в конце.
- Char ch (3) = 'modi' - незаконное заявление
Принимая вход и выход
При получении ввода и отображении вывода в C для массива char '% c' могут быть использованы функции scanf () и printf () соответственно.
При реализации того же для строк можно использовать «% s», но при этом останавливается сканирование при появлении первого символа пробела.
Программа C:
#include
#include
int main()
(
char str(20);
printf(“Enter a string”);
scanf(“%(^\n)”, &str);
printf(“%s”, str);
return 0;
)
Выход:
Помимо функций printf и scanf, C также предоставляет строковые функции, такие как gets () и put (), чтобы игнорировать пробелы строки при сканировании и печати.
Вывод
Массив - это тип структуры данных, используемый для хранения однородных данных в непрерывной ячейке памяти. Массивы в программировании используются в качестве представления для различных сложных структур данных, таких как дерево, куча и т. Д. Язык C позволяет использовать многомерные массивы для всех примитивных типов данных. Строки также представлены в виде массива символов с нулевым символом '\ 0' в качестве последнего символа. Массивы в программировании обеспечивают быстрый поиск и прямой доступ к элементам массива, используя индекс, в котором хранится элемент.
Рекомендуемые статьи
Это руководство по программированию массивов на Си. Здесь мы обсуждаем Введение, Потребности Массива, а также Функции Передачи Массива, включающие в себя вызов по значению, вызов по ссылке и передачу всего массива в качестве аргумента. Вы также можете посмотреть следующие статьи, чтобы узнать больше -
- 3D массивы в C
- Лучшие компиляторы Си
- Шаблоны в C Программирование
- Факториал в С
- Руководство по массивам в C #
- 3D-массивы в C ++
- Руководство по массивам в PHP
- C умножение матриц программирования
- PHP Array Функции | Типы | Примеры