Введение в программирование массивов на 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 секций, как указано ниже:

  1. Текстовый сегмент
  2. Инициализированный сегмент данных
  3. Неинициализированный сегмент данных
  4. стек
  5. отвал

Данные, куча и стек - это три сегмента, в которых массивам может быть выделена память для хранения его элементов, так же как и другие переменные.

  1. Динамические массивы. Динамические массивы - это массивы, для которых требуется место в памяти, выделяемое во время выполнения. Для этих типов массивов память выделяется в области памяти кучи.
  2. Глобальные или статические массивы. Это типы массивов, которые выделяются во время компиляции. Таким образом, память сегментов данных всегда выделяется для этих типов массивов.
  3. Локальные массивы . Массивы, которые инициализируются внутри функции или блока, называются локальными массивами. Эти типы массивов получают память, выделенную в сегменте стека.

Массив символов

В C строки рассматриваются как одномерный массив символов с нулевым символом '\ 0' в его последней позиции, который компилятор автоматически добавляет к нему.

Например, «я люблю кодирование» рассматривается как одноразмерный массив c длиной 14, включая символ «\ 0» в конце.

Объявление: есть 2 способа объявить и инициализировать массив символов:

  1. char str (12) = «я люблю код»;
  2. char str (12) = ('I', '', 'l', 'o', 'v', 'e', ​​'', 'c', 'o', 'd', 'e, ' \ 0 ''); - Здесь мы должны заканчивать его символом '\ 0' в конце.
  3. 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' в качестве последнего символа. Массивы в программировании обеспечивают быстрый поиск и прямой доступ к элементам массива, используя индекс, в котором хранится элемент.

Рекомендуемые статьи

Это руководство по программированию массивов на Си. Здесь мы обсуждаем Введение, Потребности Массива, а также Функции Передачи Массива, включающие в себя вызов по значению, вызов по ссылке и передачу всего массива в качестве аргумента. Вы также можете посмотреть следующие статьи, чтобы узнать больше -

  1. 3D массивы в C
  2. Лучшие компиляторы Си
  3. Шаблоны в C Программирование
  4. Факториал в С
  5. Руководство по массивам в C #
  6. 3D-массивы в C ++
  7. Руководство по массивам в PHP
  8. C умножение матриц программирования
  9. PHP Array Функции | Типы | Примеры