Uvod u nizove u C programiranju

Niz je vrsta strukture podataka koja se koristi za pohranjivanje homogenih podataka u susednim memorijskim mjestima.

Ovdje se indeks odnosi na mjesto elementa u nizu. Zamislimo da li je A (L) naziv matrice gdje je "A" naziv varijable, a "L" je duljina polja, tj. Broj elemenata koji su prisutni u nizu.

Tada A (i) predstavlja element u tom položaju "i + 1" u nizu. Primjer:

A (6) = 72 znači element na 6 + 1. mjestu matrice.

Potreba za Nizom

Ona pomaže u predstavljanju velikog broja elemenata koristeći jednu varijablu. Ujedno omogućuje brže pristupanje elementu za pohranu u memorijsku lokaciju koristeći indeks matrice koji predstavlja lokaciju elementa u nizu ..

Pristup elementima u nizu

Pristup bilo kojem elementu u nizu je puno lakši i može se obaviti u složenosti O (1)

Indeksi matrice počinju od 0 do -1.0 označavaju prvi element matrice, a -1 označava posljednji element matrice. Isto tako, -2 ukazuje na posljednji, ali jedan element niza.

Na primjer:

Neka je A niz s duljinom 7 i treba pristupiti elementu vrijednosti 94, a zatim mora koristiti A (3).

Sintaksa

printf ("% d", A (3)) - Ovo će ispisati 94 gdje je 3 indeks kojem trebamo pristupiti, a a je varijabla polja.

Izjava niza u C

U C polje se mora pravilno deklarirati prije nego što je upotrijebite sa svojim imenom i dužinom. Postoje tri sintakse u kojima možemo proglasiti nizove u ac programu

Sintaksa 1

int A (7) = (21, 56, 32, 52, 63, 12, 48) - Izjava duljine i elemenata niza

C program

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

Izlaz:

Sintaksa 2

int A () = (21, 56, 32, 52, 63, 12, 48) - Izjava duljine elemenata niza

C program

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

Izlaz:

Sintaksa 3

int A (7); - Deklariranje samo duljine niza.

C program

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

Izlaz:

Sintaksa 4

int A (7) = (0); - Izjava duljine niza i elementa kada je element isti na svim pozicijama.

C program

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

Izlaz:

Sintaksa 5

Izjava duljine niza i vrijednosti elemenata u kojima su sve vrijednosti iste

Slučaj1 - int a (3) = ((0..1) = 3) -

Slučaj 2 - int a (3) = (0); -

Sintaksa 6

int * a; - proglašavanje matrice kao pokazivača na položaj elemenata.

Nema indeksa izvan provjere granice

U slučaju da pokušate pristupiti elementu izvan granica niza, prevoditelj ne prikazuje grešku, umjesto toga generira upozorenje. A također daje neočekivani izlaz.

Primjer

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

Ako pišemo printf (a (4));

Izlaz će biti 225263545 - Neočekivano

Također, u C-u, prevoditelj ne griješi inicijaliziranje niza s više brojevnih elemenata od navedene duljine u deklaraciji. Na primjer, niži program umjesto toga ne prikazuje pogrešku.

C program

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

Izlaz:

Dohvaćanje elemenata u nizu

Dohvaćanje elemenata niza i njihovo ispis vrlo je lak zadatak. Samo je potrebna jedna petlja za ispis n elemenata niza. stoga je složenost takvog programa O (n).

Na primjer - neka je int a (7) = (23, 56, 8, 944, 58, 24, 5);

Program za ispis elemenata niza je

C program

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

Izlaz:

Višedimenzionalni niz

Jezik C također omogućuje višedimenzionalne nizove, tj. Nizove koji mogu sadržavati elemente u redovima kao i u stupcima.

Deklaracija

Tijekom deklariranja višedimenzionalnog niza treba navesti duljinu svih dimenzija osim lijeve jer je to neobavezno.

Primjer

Izjašnjavanje niza na donji način rezultirat će pogreškom jer dimenzije koje nisu lijeve većine nisu navedene.

Int a () () (2) = (

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

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

)

Primjer

Ispod je jedna od ispravnih sintaksa za deklaraciju višedimenzionalnog niza u C.

Int a () (3) = (

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

)

Prolazeći niz kao parametar u funkciji

Ponekad dok izrađujemo funkciju, zahtijevamo od funkcije da koristi niz varijabli koje treba uzeti iz različitih funkcija. Tada se te varijable moraju proslijediti kao parametar tom pozivu funkcije. No s vremenom, kako se povećava broj varijabli, moramo koristiti niz da bismo proslijedili varijablu ili u slučaju da se neke operacije trebaju provesti na nizovima, tada se također mora pojaviti kompletan niz kao parametar u funkciji. Za prosljeđivanje niza kao varijable u funkciju:

1. Pozovite prema vrijednosti

U ovom tipu pozivanja metoda, stvarne vrijednosti matrice kopiraju se u formalni parametar gdje su obje pohranjene na različito mjesto, tako da se svaka promjena u vrijednostima ne odražava u funkciji.

C program

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

Izlaz:

2. Nazovite referencom

Dok poziva funkciju kada umjesto prosljeđivanja stvarnih vrijednosti matrice, referenca na varijablu se prosljeđuje kao parametar, tada je poznata i kao poziv referencom.

C program

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

Izlaz:

3. Prolazak cijelog niza kao argumenta

Npr. - Neka arr bude niz od 7 elemenata.disp je funkcija za prikazivanje elemenata matrike koji uzimaju 2 argumenta, prvi koji upućuje na prvo mjesto matrice, a drugi na duljinu polja (var2). prenosi se varijabla arr funkcije koja upućuje na mjesto prvog elementa niza i dužinu tj. 7.

C program

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

Izlaz:

Dodjela memorije niza

Smatra se da je zastupljenost memorije na jeziku C podijeljena u 5 odjeljaka kao što je dano u nastavku: -

  1. Tekstualni segment
  2. Inicijalizirani segment podataka
  3. Neinicijalizirani segment podataka
  4. Stog
  5. Hrpa

Podaci, heap i stack su tri segmenta kojima se nizovima može dodijeliti memorija za spremanje njenih elemenata, isti kao i ostale varijable.

  1. Dinamički nizovi: Dinamički nizovi su nizovi kojima je potrebno memorijsko mjesto biti dodijeljeno za vrijeme izvođenja. Za ovu vrstu polja dodjeljuje se memorija na mjestu memorije heap.
  2. Globalni ili statički nizi: Ovo su vrsta nizova koji se dodjeljuju u vrijeme sastavljanja. Stoga je memorija segmenta podataka uvijek dodijeljena za ovu vrstu polja.
  3. Lokalni nizovi: Nizovi koji se inicijaliziraju unutar funkcije ili bloka poznati su kao lokalni nizovi. Ove vrste od nizova raspoređuju memoriju na segmentu snopa.

Niz znakova

U C nizovima se smatraju jednodimenzionalnim nizom znakova s ​​null karakterom '\ 0' u zadnjem položaju koji kompajler automatski dodaje.

Na primjer, "volim kodiranje" smatra se jedinstvenom dimenzijskom matricom c c duljine 14, uključujući na kraju znak "\ 0".

Izjava: Postoje dva načina deklariranja i inicijalizacije niza znakova -

  1. char str (12) = "Volim kod";
  2. char str (12) = ('I', '', 'l', 'o', 'v', 'e', ​​'', 'c', 'o', 'd', 'e, ' \ 0 ''); - Ovdje ga moramo završiti znakom '\ 0' na kraju.
  3. Char ch (3) = 'modi' - Nezakonita deklaracija

Uzimanje ulaza i izlaza

Za vrijeme uzimanja ulaza i prikazivanja izlaza u C za niz znakova '% c' mogu se koristiti funkcije scanf () i printf ().

Prilikom implementacije istog za žice "% s" se može koristiti, ali zaustavlja skeniranje na pojavu prvog znaka bjeline.

C Program:

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

Izlaz:

Osim printf i scanf funkcije, C nudi i nizove funkcija poput get () i stavlja () da ignoriraju bijele prostore niza tijekom skeniranja i ispisa.

Zaključak

Niz je vrsta strukture podataka koja se koristi za pohranu homogenih podataka u neprestano memorijsko mjesto. Nizovi u programiranju koriste se kao prikaz za različite složene strukture podataka, kao što su stablo, hrpa, itd. C jezik omogućuje višedimenzionalne nizove za sve primitivne vrste podataka. Nizovi su također predstavljeni kao niz znakova sa null znakom '\ 0' kao posljednjim znakom. Nizovi u programiranju omogućuju brzo pronalaženje i izravan pristup elementima matrice pomoću indeksa u kojem je element pohranjen.

Preporučeni članci

Ovo je vodič za nizove u C programiranju. Ovdje smo raspravljali o Uvodu, potrebama matrice, zajedno s prolaženjem funkcija matrike uključuje Poziv prema vrijednosti, Poziv na referencu i Prolaženje cijelog niza kao argument. Možete pogledati i sljedeće članke da biste saznali više -

  1. 3D nizovi na C
  2. Najbolji C sastavljači
  3. Obrasci u C programiranju
  4. Čimbenik u C
  5. Vodič za nizove u C #
  6. 3D nizovi u jeziku C ++
  7. Vodič za nizove u PHP-u
  8. C Programiranje množenja matrice
  9. Funkcije niza PHP | Vrste | Primjeri

Kategorija: