Sissejuhatus massiividesse C-programmeerimises

Massiiv on teatud tüüpi andmestruktuur, mida kasutatakse homogeensete andmete salvestamiseks külgnevates mälukohtades.

Siin viitab element elemendi asukohale massiivis. Kujutame ette, kas A (L) on massiivi nimi, kus “A” on muutuja nimi ja “L” on massiivi pikkus, st massiivis esinevate elementide arv.

Siis tähistab A (i) elementi massiivi selles positsioonis „i + 1“. Näide:

A (6) = 72 tähendab elementi massiivi 6 + 1-ndas asukohas.

Vajadus massiivi järele

See aitab ühe muutuja abil esindada suurt hulka elemente. See muudab ka elemendi juurde pääsemise kiiremaks mällu salvestamiseks, kasutades massiivi indeksit, mis tähistab massiivi elemendi asukohta.

Elementide juurdepääs massiivis

Massiivi mis tahes elemendi juurde pääseb palju lihtsamalt ja seda saab teha keerukusega O (1)

Massiivi indeksid algavad vahemikus 0 kuni -1, 0 tähistavad massiivi esimest elementi ja -1 tähistavad massiivi viimast elementi. Samamoodi tähistab -2 massiivi viimast kui ühte elementi.

Näiteks:

Olgu A massiiv pikkusega 7 ja üks peab pääsema juurde väärtusele 94, siis peab ta kasutama A (3).

Süntaks

printf (“% d”, A (3)) - see prindib 94, kus 3 on indeks, millele peame juurde pääsema, ja a on massiivi muutuja.

Massiivi deklaratsioon C-s

C-s tuleb massiiv enne selle nime ja pikkusega kasutamist korralikult deklareerida. Seal on kolm süntaksit, milles me saame deklareerida massiive ac-programmis

1. süntaks

int A (7) = (21, 56, 32, 52, 63, 12, 48) - massiivi pikkuse ja elementide deklareerimine

C programm

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

Väljund:

2. süntaks

int A () = (21, 56, 32, 52, 63, 12, 48) - massiivi elementide pikkuse deklareerimine

C programm

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

Väljund:

3. süntaks

int A (7); - Ainult massiivi pikkuse deklareerimine.

C programm

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

Väljund:

4. süntaks

int A (7) = (0); - massiivi ja elemendi pikkuse deklareerimine, kui element on kõigis positsioonides sama.

C programm

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

Väljund:

5. süntaks

Massiivi pikkuse ja ka elementide väärtuse deklareerimine, kus kõik väärtused on samad

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

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

6. süntaks

int * a; - massiivi deklareerimine osutina elementide asukohale.

Ühtegi indeksit pole kontrollimisel

Kui üritatakse elemendi juurde pääseda massiivi piiridest, ei näita kompilaator viga, selle asemel genereerib see hoiatuse. Ja annab ka ootamatu väljundi.

Näide

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

Kui kirjutame printf (a (4));

Väljund on 225263545 - ootamatu

Ka C-s ei muuda kompilaator viga massiivi initsialiseerimisel, milles on rohkem numbri elemente kui deklaratsioonis määratud pikkus. Näiteks ei näita allolev programm selle asemel tõrget.

C programm

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

Väljund:

Elementide otsimine massiivis

Massiivi elementide leidmine ja nende printimine on väga lihtne ülesanne. Massiivi n elemendi printimiseks on vaja ainult ühte silmust. seega on sellise programmi keerukus O (n).

Näiteks näiteks int a (7) = (23, 56, 8, 944, 58, 24, 5);

Massiivi elementide printimise programm on

C programm

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

Väljund:

Mitmemõõtmeline massiiv

C-keel võimaldab ka mitmemõõtmelisi massiive, st massiive, mis mahutavad elemente nii ridades kui ka veergudes.

Deklaratsioon

Mitmemõõtmelise massiivi deklareerimisel tuleb täpsustada kõigi mõõtmete pikkus, välja arvatud vasakpoolne, kuna see on valikuline.

Näide

Massiivi allpool esitatud viisil deklareerimisel ilmneb tõrge, kuna muid mõõtmeid kui vasakpoolseim pole täpsustatud.

Int a () () (2) = (

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

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

)

Näide

Allpool on üks õige süntaks mitmemõõtmelise massiivi deklareerimiseks C-s.

Int a () (3) = (

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

)

Massiivi läbimine funktsioonina parameetrina

Mõnikord nõuame funktsiooni tegemise ajal, et see kasutaks mitmeid muutujaid, mida ta peab erinevatest funktsioonidest võtma. Sel ajal tuleb need muutujad selle funktsioonikõne parameetrina edasi anda. Kuid lõpuks, kui muutujate arv suureneb, peame muutuja edastamiseks kasutama massiivi või juhul, kui massiivides tuleb teha mõned toimingud, siis tuleb ka funktsiooni parameetrina läbida täielik massiiv. Massiivi muutujana funktsiooni edastamiseks:

1. Kõne väärtuse järgi

Seda tüüpi meetodikõne korral kopeeritakse massiivi tegelikud väärtused formaalsesse parameetrisse, kus mõlemad salvestatakse erinevasse kohta, seega ei kajastu väärtustes tehtud muudatused funktsioonis.

C programm

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

Väljund:

2. Helista viitega

Kui funktsiooni kutsutakse, kui massiivi tegelike väärtuste ületamise asemel antakse parameetrina viide muutujale, siis nimetatakse seda viitekõneks.

C programm

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

Väljund:

3. Kogu massiivi edastamine argumendina

Nt - Olgu arr massiiv 7-st elemendist.disp on funktsioon massiivi elementide kuvamiseks, mis võtavad 2 argumenti, esiteks osutab massiivi esimesele asukohale ja teisalt massiivi pikkusele (var2). funktsiooni arr muutuja, mis osutab massiivi esimese elemendi asukohale ja pikkusele, st 7, on möödunud.

C programm

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

Väljund:

Massiivi mälu jaotamine

C-keele mälu esitus loetakse jagatuks viieks sektsiooniks järgmiselt: -

  1. Teksti segment
  2. Alustatud andmesegment
  3. Algatamata andmete segment
  4. Korstnat
  5. Hunnik

Andmed, hunnik ja pinu on kolm segmenti, kuhu massiive saab eraldada mälu selle elementide talletamiseks, nagu teistel muutujatel.

  1. Dünaamilised massiivid: Dünaamilised massiivid on massiivid, mille tööaja eraldamiseks on vaja mälu asukohta. Seda tüüpi massiivide jaoks eraldatakse mälu hunnikmälu asukohta.
  2. Globaalsed või staatilised massiivid: need on massiivide tüübid, mis eraldatakse kompileerimise ajal. Seega eraldatakse seda tüüpi massiividele alati andmesegmentimälu.
  3. Kohalikud massiivid: massiive, mis initsialiseeritakse funktsiooni või ploki sees, tuntakse kohalike massiividena. Seda tüüpi massiivid saavad mälumahu virnasegmendi jaoks.

Märkide massiiv

C-s loetakse stringe ühemõõtmeliseks märkide massiiviks, mille nullmärk '\ 0' on viimases positsioonis, mille kompilaator lisab sellele automaatselt.

Näiteks loetakse “ma armastan kodeerimist” ühemõõtmeliseks massiiviks c pikkusega 14, mille lõpus on märk “0”.

Deklaratsioon: märkide massiivi deklareerimiseks ja lähtestamiseks on kaks viisi -

  1. char str (12) = “ma armastan koodi”;
  2. char str (12) = ('mina', '', 'l', 'o', 'v', 'e', ​​'', 'c', 'o', 'd', 'e, ' \ 0 ''); - Siinkohal tuleb see lõpus lõpetada tähega "0".
  3. Char ch (3) = 'modi' - ebaseaduslik deklaratsioon

Sisendi ja väljundi võtmine

Sisestuse tegemisel ja C-vormingus väljundi kuvamisel sümbolimassiivina '% c' saab kasutada vastavalt funktsioone scanf () ja printf ().

Kui rakendate sama stringi jaoks, saab kasutada „% s”, kuid peatab esimese tühimärgi esinemise skannimise.

C programm:

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

Väljund:

Lisaks printf- ja scanf-funktsioonidele pakub C ka stringi funktsioone, nagu saab () ja paneb (), et ignoreerida stringi valgeid tühikuid skaneerimise ja printimise ajal.

Järeldus

Massiiv on teatud tüüpi andmestruktuur, mida kasutatakse homogeensete andmete salvestamiseks külgnevas mälukohas. Massiive programmeerimisel kasutatakse erinevate keerukate andmestruktuuride (nt puu, hunnik jne) esitusena. Keel võimaldab mitmemõõtmelisi massiive kõigi primitiivsete andmetüüpide jaoks. Stringid on esindatud ka tähemärgimassiivina, mille viimaseks tähemärgiks on null. Programmeerimise massiivid võimaldavad massiivi elementide kiiret otsimist ja otsest juurdepääsu sellele indeksile, kus element on salvestatud.

Soovitatavad artiklid

See on juhend massiivide kohta C programmeerimises. Siin käsitleme sissejuhatust, massiivi vajadusi ning massiivi edastamise funktsioone, sealhulgas argumenti kõned väärtuse järgi, kõne viite alusel ja terve massiivi edastamine. Lisateabe saamiseks võite vaadata ka järgmisi artikleid -

  1. 3D-massiivid C-s
  2. Parimad C-kompilaatorid
  3. C-programmeerimise mustrid
  4. Faktoriaal C-s
  5. C-massiivide juhend
  6. 3D-massiivid C ++ -s
  7. Juhend massiivi kohta PHP-s
  8. C Programmeerimismaatriksi korrutamine
  9. PHP-massiivi funktsioonid | Tüübid | Näited

Kategooria: