Увод у низове у Ц програмирању

Низ је врста структуре података која се користи за складиштење хомогених података у суседним меморијским локацијама.

Овде се индекс односи на локацију елемента у низу. Замислимо да ли је А (Л) назив матрице где је „А“ назив променљиве, а „Л“ је дужина матрице, тј. Број елемената присутних у низу.

Тада А (и) представља елемент на тој „и + 1“ позицији у низу. За пример:

(6) = 72 значи елемент на 6 + 1. локацији низа.

Неед фор Арраи

Помаже при представљању великог броја елемената користећи једну променљиву. Такође олакшава приступ елементу лакшим за смештање у меморијску локацију користећи индекс матрице који представља локацију елемента у низу ..

Приступ елементима у низу

Приступ било којем елементу у низу је много лакши и може се обавити у сложености О (1)

Индекси матрице почињу од 0 до -1.0 означавају први елемент матрице, а -1 означава задњи елемент матрице. Слично томе, -2 указује на последњи, али један елемент низа.

На пример:

Нека је А низ с дужином 7 и треба приступити елементу са вриједношћу 94, а затим мора користити А (3).

Синтакса

принтф ("% д", А (3)) - Ово ће исписати 94 где је 3 индекс коме морамо приступити, а а је променљива низа.

Изјава о низу у Ц

У Ц поље се мора правилно декларирати прије него што је употријебите са својим именом и дужином. Постоје три синтаксе у којима можемо прогласити низове у програму ац

Синтакса 1

инт А (7) = (21, 56, 32, 52, 63, 12, 48) - Изјава дужине и елемената низа

Ц Програм

#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

инт А () = (21, 56, 32, 52, 63, 12, 48) - Изјава дужине елемената низа

Ц Програм

#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

инт А (7); - Декларирање само дужине низа.

Ц Програм

#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

инт А (7) = (0); - Изјава дужине низа и елемента када је елемент исти на свим позицијама.

Ц Програм

#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

Изјава дужине низа и вредности елемената код којих су све вредности исте

Случај1 - инт а (3) = ((0..1) = 3) -

Случај 2 - инт а (3) = (0); -

Синтакса 6

инт * а; - проглашавање матрице као показивача на локацију елемената.

Нема провјере индекса ван границе

У случају да покушате да приступите елементу изван граница низа, преводилац не приказује грешку, уместо тога генерише упозорење. А такође даје неочекивани резултат.

Пример

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

Ако пишемо принтф (а (4));

Излаз ће бити 225263545 - Неочекивано

Такође, у Ц-у, преводилац не греши иницијализацију низа са више бројевних елемената од наведене дужине у декларацији. На пример, нижи програм уместо тога не приказује грешку.

Ц Програм

#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;
)

Излаз:

Дохваћање елемената у низу

Дохваћање елемената низа и њихово штампање је врло лак задатак. Потребна је само једна петља за испис н елемената низа. стога је сложеност таквог програма О (н).

На пример - нека је инт а (7) = (23, 56, 8, 944, 58, 24, 5);

Програм за штампање елемената низа је

Ц Програм

#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;
)

Излаз:

Мултидимензионални низ

Ц језик такође омогућава вишедимензионалне низове, тј. Низове који могу да држе елементе у редовима као и у колонама.

Изјава

Приликом декларирања вишедимензионалног низа морате одредити дужину свих димензија осим лијеве јер је то опционално.

Пример

Изјашњавање низа на доњи начин резултираће грешком, јер димензије које нису већина лијеве стране нису наведене.

Инт а () () (2) = (

((1, 2), (3, 4)),

((5, 6), (7, 8))

)

Пример

Испод је једна од исправних синтакса за декларацију вишедимензионалног низа у Ц.

Инт а () (3) = (

(52, 56, 86), (44, 6, 21)

)

Пролазак матрице као параметра у функцији

Понекад док правимо функцију, захтевамо да функција користи одређени број променљивих које треба да преузме из различитих функција. Тада се те променљиве морају проследити као параметар том позиву функције. Али на крају, како се повећава број променљивих, морамо користити низ да бисмо проследили променљиву или у случају да се неке операције морају извести на низу, тада се мора појавити и да би се прошао комплетан низ као параметар у функцији. За просљеђивање низа као варијабле у функцију:

1. Позовите по вредности

У овом типу позивања метода, стварне вредности низа копирају се у формални параметар где су обе спремљене на различитој локацији, тако да се свака промена вредности не одражава у функцији.

Ц Програм

#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. Позовите путем референце

Док позивате функцију када уместо да проследите стварне вредности матрице, референца на променљиву се прослеђује као параметар, тада је позната и као позив референцом.

Ц Програм

#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. Проношење целог низа као аргумента

Нпр. - Нека арр буде низ од 7 елемената.дисп је функција за приказивање елемената матрике који узимају 2 аргумента, први који упућује на прво место матрице, а други на дужину матрице (вар2). преносна је варијабла функције арр која указује на локацију првог елемента низа и дужину тј. 7.

Ц Програм

#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. Локални низови: Низови који се иницијализирају унутар функције или блока познати су као локални низови. Овим типовима низова додјељује се меморија у сегменту снопа.

Низ знакова

У Ц се низови сматрају једнодимензионалним низом знакова са нулл карактером '\ 0' у последњем положају који компајлер аутоматски додаје.

На примјер, „волим кодирање“ сматра се низом димензија ц ц дужине 14, укључујући на крају знак „\ 0“.

Изјава: Постоје два начина декларирања и иницијализације низа знакова -

  1. цхар стр (12) = „Волим код“;
  2. цхар стр (12) = ('И', '', 'л', 'о', 'в', 'е', '', 'ц', 'о', 'д', 'е, ' \ 0 ''); - Овде га морамо завршити знаком '\ 0' на крају.
  3. Цхар цх (3) = 'моди' - Незаконита декларација

Узимање улаза и излаза

Приликом узимања улаза и приказа излаза у Ц за низ армира '% ц' могу се користити сцанф () и принтф () функција.

Приликом имплементације истог за жице "% с" се може користити, али зауставља скенирање на појаву првог знака белог простора.

Ц Програм:

#include
#include
int main()
(
char str(20);
printf(“Enter a string”);
scanf(“%(^\n)”, &str);
printf(“%s”, str);
return 0;
)

Излаз:

Осим принтф и сцанф функција, Ц такође пружа функције стрингова као што је гет () и ставља () да занемари бијеле размаке низа током скенирања и штампања.

Закључак

Низ је врста структуре података која се користи за чување хомогених података у непрестаној меморијској локацији. Низови у програмирању користе се као репрезентација за различите сложене структуре података као што су дрво, хеап, етц.Ц језик омогућава вишедимензионалне низове за све примитивне типове података. Низови су такође представљени као низ знакова са нулл карактером '\ 0' као последњим карактером. Низови у програмирању омогућују брзо проналажење и директан приступ елементима матрице помоћу индекса у којем је елемент похрањен.

Препоручени чланци

Ово је водич за низове у Ц програмирању. Овде смо расправљали о Уводу, потребама арраи-а, заједно са просљеђивањем функција матрице, укључује позив по вредности, позив по референци и пролазак читавог низа као аргумента. Такође можете погледати следеће чланке да бисте сазнали више -

  1. 3Д низови на Ц
  2. Бест Ц Цомпилерс
  3. Обрасци у Ц програмирању
  4. Фактор у Ц
  5. Водич за низове у Ц #
  6. 3Д низови у Ц ++
  7. Водич за низове у ПХП-у
  8. Ц Програмирање множења матрице
  9. ПХП Арраи Фунцтионс | Врсте | Примери

Категорија: