Uvod v matrike v C programiranju

Niz je vrsta podatkovne strukture, ki se uporablja za shranjevanje homogenih podatkov v sosednjih pomnilniških mestih.

Tu se indeks nanaša na lokacijo elementa v matriki. Predstavljajmo si, če je A (L) ime matrike, kjer je "A" ime spremenljivke in "L" dolžina matrike, torej število elementov, prisotnih v matriki.

Nato A (i) predstavlja element na tistem mestu "i + 1" v nizu. Na primer:

(6) = 72 pomeni element na 6 + 1. lokaciji matrike.

Potreba po Array

Pomaga predstavljati veliko število elementov z uporabo ene same spremenljivke. Prav tako omogoča lažji dostop do elementov za shranjevanje v pomnilniški lokaciji s pomočjo indeksa matrike, ki predstavlja lokacijo elementa v matriki.

Dostop do elementov v nizu

Dostop do katerega koli elementa v matriki je veliko lažji in ga je mogoče storiti v kompleksnosti O (1)

Indeksi matrike se začnejo od 0 do -1.0 označujejo prvi element matrike in -1 zadnji element matrike. Podobno -2 označuje zadnji, vendar en element matrike.

Primer:

Naj bo A niz z dolžino 7 in mora do njega dostopati do elementa z vrednostjo 94, potem mora uporabiti A (3).

Sintaksa

printf ("% d", A (3)) - To bo natisnilo 94, kjer je 3 indeks, do katerega moramo dostopati, a je spremenljivka matrike.

Izjava matrike v C

V C mora biti matrika pravilno razglašena, preden jo uporabimo z imenom in dolžino. Obstajajo tri skladnje, v katerih lahko v programu ac objavimo matrike

Sintaksa 1

int A (7) = (21, 56, 32, 52, 63, 12, 48) - Izjava dolžine in elementov matrike

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

Izhod:

Sintaksa 2

int A () = (21, 56, 32, 52, 63, 12, 48) - Izjava dolžine elementov matrike

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

Izhod:

Sintaksa 3

int A (7); - Razglasitev samo dolžine matrike.

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

Izhod:

Sintaksa 4

int A (7) = (0); - Izjava dolžine matrike in elementa, ko je element enak na vseh položajih.

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

Izhod:

Sintaksa 5

Izjava dolžine matrike in tudi vrednosti elementov, pri katerih so vse vrednosti enake

Primer1 - int a (3) = ((0..1) = 3) -

Primer 2 - int a (3) = (0); -

Sintaksa 6

int * a; - razglasitev matrike kot kazalec na lokacijo elementov.

Ni preverjanja indeksa

Če poskusite dostop do elementa izven okvira matrike, prevajalnik ne pokaže napak, namesto tega ustvari opozorilo. In daje tudi nepričakovan rezultat.

Primer

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

Če pišemo printf (a (4));

Izhod bo 225263545 - Nepričakovano

Tudi v C, prevajalnik ne zmoti inicializiranja matrike z več števčnimi elementi od navedene dolžine v deklaraciji. Spodnji program na primer ne prikazuje napake.

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

Izhod:

Nalaganje elementov v matriki

Nalaganje elementov matrike in tiskanje le-teh je zelo enostavna naloga. Za tiskanje n elementov matrike potrebuje samo eno zanko. zato je kompleksnost takšnega programa O (n).

Na primer - vnesite a (7) = (23, 56, 8, 944, 58, 24, 5);

Program za tiskanje elementov matrike je

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

Izhod:

Večdimenzionalni niz

Jezik C omogoča tudi večdimenzionalne matrike, tj. Matrike, ki lahko vsebujejo elemente v vrsticah in stolpcih.

Izjava

Med razglasitvijo večdimenzionalnega niza morate določiti dolžino vseh dimenzij, razen leve, ker to ni obvezno.

Primer

Če razvrstite niz na spodnji način, bo prišlo do napake, saj druge dimenzije razen večine leve niso določene.

Int a () () (2) = (

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

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

)

Primer

Spodaj je ena od pravilnih skladenj za deklaracijo večdimenzionalnega niza v C.

Int a () (3) = (

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

)

Mimo matrike kot parametra v funkciji

Včasih med izdelavo funkcije od funkcije zahtevamo številne spremenljivke, ki jih mora prevzeti iz različnih funkcij. V tem času je treba te spremenljivke posredovati kot parameter temu klicu funkcije. Ko pa se število spremenljivk poveča, moramo uporabiti matriko za prenos spremenljivke, če pa je treba na nizih opraviti nekaj operacij, potem se mora pojaviti tudi celoten niz kot parameter v funkciji. Za prenos matrike kot spremenljivke v funkcijo:

1. Klic po vrednosti

Pri tej vrsti klicanja metode se dejanske vrednosti matrice kopirajo v formalni parameter, kjer sta oba shranjena na drugem mestu, tako da se vsaka sprememba vrednosti ne odrazi v funkciji.

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

Izhod:

2. Klic po referenci

Medtem ko kličete funkcijo, ko namesto da prenesete dejanske vrednosti matrike, se sklic na spremenljivko prenese kot parameter, potem je znan kot klic po referenci.

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

Izhod:

3. Prevajanje celotnega niza kot argument

Npr. - arr naj bo matrika 7 elementov.disp je funkcija za prikaz elementov matrike, ki sprejme 2 argumenta, najprej, ki kaže na prvo lokacijo matrike in drugo na dolžino matrike (var2). se prenese spremenljivka funkcije arr, ki kaže na lokacijo prvega elementa matrike in dolžino, tj. 7.

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

Izhod:

Razporeditev pomnilnika matrike

Šteje se, da je zastopanje pomnilnika v jeziku C razdeljeno na 5 razdelkov:

  1. Segment besedila
  2. Inicializirani podatkovni segment
  3. Neinicializirani podatkovni segment
  4. Zložite
  5. Kup

Podatki, kopica in sklad so trije segmenti, kjer lahko matriki dodelimo pomnilnik za shranjevanje njenih elementov, enako kot druge spremenljivke.

  1. Dinamični nizi: Dinamični nizi so matrike, za katere je treba med izvajanjem dodeliti pomnilniško lokacijo. Za te vrste nizov je dodeljen pomnilnik na mestu pomnilnika.
  2. Globalni ali statični nizi: To so tipi nizov, ki se dodelijo v času prevajanja. Tako je za to vrsto nizov vedno dodeljen pomnilnik podatkovnih segmentov.
  3. Lokalni nizi: Nizi, ki se inicializirajo znotraj funkcije ali bloka, so znani kot lokalni nizi. Te vrste od nizov razporedijo pomnilnik na segmentu nizov.

Niz znakov

V C se strune štejejo za enodimenzionalni niz znakov z ničelnim znakom '\ 0' v zadnjem položaju, ki mu ga prevajalec samodejno doda.

Na primer, "ljubim kodiranje" se šteje za enodimenzionalni niz v c dolžini 14, ki na koncu vključuje znak "\ 0".

Izjava: Obstajata dva načina za razglasitev in inicializacijo matrične črke -

  1. char str (12) = „ljubim kodo“;
  2. char str (12) = ('I', '', 'l', 'o', 'v', 'e', ​​'', 'c', 'o', 'd', 'e, ' \ 0 ''); - Tu ga moramo na koncu končati z znakom '\ 0'.
  3. Char ch (3) = 'modi' - Nezakonita izjava

Vnos in izhod

Medtem ko za vnos in prikaz izhoda v C za matriko char '% c' lahko uporabljate scanf () in printf () funkcijo.

Med izvajanjem istega niza se lahko uporabi "% s", vendar ne ustavi skeniranja ob pojavu prvega znaka praznega prostora.

Program C:

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

Izhod:

Razen funkcij printf in scanf, C ponuja tudi funkcije niza, kot je get () in put (), da med skeniranjem in tiskanjem ignorira bela presledka niza.

Zaključek

Array je vrsta podatkovne strukture, ki se uporablja za shranjevanje homogenih podatkov na sosednjem pomnilnem mestu. Nizi v programiranju se uporabljajo kot predstavitev za različne zapletene strukture podatkov, kot so drevo, kopica itd. C jezik omogoča večdimenzionalne matrike za vse primitivne vrste podatkov. Strune so predstavljene tudi kot zaporedje znakov z null znak '\ 0' kot njegov zadnji znak. Nizi v programiranju omogočajo hitro iskanje in neposreden dostop do elementov matrike z uporabo indeksa, v katerem je element shranjen.

Priporočeni članki

To je vodnik za Niz v programiranju C. Tukaj razpravljamo o uvodu, potrebah matrike, skupaj s funkcijami posredovanja matričnih funkcij pa kot argument vključuje klic po vrednosti, klic po referenci in posredovanje celotnega polja. Če želite izvedeti več, si oglejte tudi naslednje članke -

  1. 3D matriki na C
  2. Najboljši C prevajalci
  3. Vzorci v C programiranju
  4. Factorial v C
  5. Vodnik po nizih v C #
  6. 3D matriki v C ++
  7. Vodnik po Arrays v PHP
  8. C Programiranje množenja matrike
  9. Funkcije matrike PHP | Vrste | Primeri