Въведение в масиви в 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 масивът трябва да бъде деклариран правилно, преди да го използвате с името и дължината си. Има три синтаксиса, в които можем да декларираме масиви в програма ac

Синтаксис 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; - Деклариране на масив като указател към местоположението на елементите.

Няма индекс извън проверката на границите

В случай, че се опитате да получите достъп до елемента извън границите на масива, компилаторът не показва грешка, вместо това генерира предупреждение. И също така дава неочакван резултат.

пример

a (4) = (2, 3, 4, 5);

Ако напишем printf (a (4));

Изходът ще бъде 225263545 - Неочаквано

Също така, в C, компилаторът не греши да инициализира масив с повече число елементи от указаната дължина в декларацията. Например по-долу програмата вместо това не показва грешка.

Програма 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).

За пример - нека въведете at (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. Обадете се по стойност

При този тип извикване на метод действителните стойности на масива се копират във формалния параметър, където и двете се съхраняват на различно място, като по този начин всяка промяна, направена в стойностите, не се отразява във функцията.

Програма 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. Обадете се по справка

Докато извиква функция, когато вместо да предаде действителните стойности на масива, препратката към променливата се предава като параметър, тогава тя е известна като call by reference.

Програма 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, която сочи местоположението на първия елемент от масива и дължината, т.е. 7.

Програма 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“ в края.

Декларация: Има два начина за деклариране и инициализиране на символния масив-

  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 също предоставя низови функции, като get () и поставя (), за да игнорира белите празнини на низа по време на сканиране и печат.

заключение

Масивът е вид структура от данни, използвана за съхранение на хомогенни данни в съседна памет. Масивите в програмирането се използват като представителство за различни сложни структури от данни, като дърво, грамада и т.н.C език позволява многоизмерни масиви за всички примитивни типове данни. Низовете също са представени като символен масив с нулев символ '\ 0' като последен символ. Масивите в програмирането позволяват бързото извличане и директен достъп до елементи от масив, като се използва индексът, където се съхранява елементът.

Препоръчителни статии

Това е ръководство за масиви в C програмиране. Тук обсъждаме Въведение, нужди от масив, заедно с функцията за преминаване на масив включва Call by Value, Call by Reference и Предаване на целия масив като аргумент. Можете също да разгледате следните статии, за да научите повече -

  1. 3D масиви в С
  2. Най-добрите компилатори на C
  3. Модели в C програмирането
  4. Факториал в С
  5. Ръководство за масиви в C #
  6. 3D масиви в C ++
  7. Ръководство за масиви в PHP
  8. C Матрично умножение на програмиране
  9. Функции на масив PHP | Видове | Примери