Вступ до масивів у програмуванні на С

Масив - це тип структури даних, який використовується для зберігання однорідних даних у суміжних місцях пам'яті.

Тут індекс посилається на розташування елемента в масиві. Уявімо собі, якщо 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; - Оголошення масиву як вказівника на розташування елементів.

Немає показника поза межами перевірки

Якщо ви намагаєтесь отримати доступ до елемента поза межами масиву, компілятор не відображає помилок, а він генерує попередження. А також дає несподіваний вихід.

Приклад

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).

Наприклад, нехай 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;
)

Вихід:

Багатовимірний масив

Мова С також дозволяє багатовимірні масиви, тобто `масиви, які можуть містити елементи в рядках, а також у стовпцях.

Декларація

Оголошуючи багатовимірний масив, слід вказати довжину всіх розмірів, крім лівого, тому що це необов'язково.

Приклад

Оголошення масиву наведеним нижче способом призведе до помилки, оскільки розміри, відмінні від більшості зліва, не вказані.

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. Телефонуйте за довідкою

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

Програма 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. Локальні масиви: масиви, які ініціалізуються всередині функції або блоку, відомі як локальні масиви. Ці види масивів od отримують пам'ять, виділену на сегменті стека.

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

У 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' - Незаконне оголошення

Введення та вихід

Під час прийому введення та відображення виводу в С для масиву 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 () і put () для ігнорування білих пробілів рядка під час сканування та друку.

Висновок

Масив - це тип структури даних, який використовується для зберігання однорідних даних у суміжній пам'яті. Масиви в програмуванні використовуються як подання для різних складних структур даних, таких як дерево, купа і т. Д. Мова мови дозволяє використовувати багатовимірні масиви для всіх примітивних типів даних. Рядки також представлені у вигляді масиву символів з нульовим символом '\ 0' як його останнім символом. Масиви в програмуванні дозволяють швидко знайти та отримати прямий доступ до елементів масиву за допомогою індексу, де елемент зберігається.

Рекомендовані статті

Це посібник з масивів у програмуванні на С. Тут ми обговорюємо вступ, потреби масиву, а також функції передачі масиву включає виклик за значенням, дзвінок за посиланням та передачу цілого масиву як аргумент. Ви також можете переглянути наступні статті, щоб дізнатися більше -

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