Introduktion til Arrays i C-programmering

Arrayet er en type datastruktur, der bruges til at gemme homogene data i sammenhængende hukommelsesplaceringer.

Her refererer indekset til placeringen af ​​et element i matrixen. Lad os forestille os, om A (L) er navnet på den matrix, hvor "A" er variabelnavnet, og "L" er længden på arrayet, dvs. antallet af elementer, der findes i arrayet.

Derefter repræsenterer A (i) elementet i den "i + 1" position i arrayet. For eksempel:

A (6) = 72 betyder element ved 6 + 1: e placering af array.

Behov for Array

Det hjælper med at repræsentere et stort antal elementer ved hjælp af en enkelt variabel. Det gør det nemt at gemme elementer hurtigere at gemme i hukommelsesplacering ved hjælp af indekset for den matrix, der repræsenterer placeringen af ​​et element i matrixen.

Adgang til elementer i Array

Adgang til ethvert element i matrixen er meget lettere og kan gøres i O (1) kompleksitet

Indekser for en matrix starter fra 0 til -1, 0 indikerer det første element i arrayet og -1 indikerer det sidste element i arrayet. Tilsvarende angiver -2 det sidste men et element i matrixen.

For eksempel:

Lad A være en matrix med længde 7, og man skal have adgang til elementet med værdien 94, så skal han bruge A (3).

Syntaks

printf (”% d”, A (3)) - Dette udskrives 94, hvor 3 er det indeks, som vi har brug for, og a er variablen i matrixen.

Array-erklæring i C

I C skal matrixen deklareres korrekt, før den bruges med dens navn og længde. Der er tre syntakser, hvor vi kan erklære arrays i ac-program

Syntaks 1

int A (7) = (21, 56, 32, 52, 63, 12, 48) - Angiver længden og elementerne i array

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

Produktion:

Syntaks 2

int A () = (21, 56, 32, 52, 63, 12, 48) - Angivelse af længden af ​​elementer i array

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

Produktion:

Syntaks 3

int A (7); - Kun angivelse af længden på array.

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

Produktion:

Syntaks 4

int A (7) = (0); - Angiver længden af ​​arrayet og elementet, når et element er det samme på alle positioner.

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

Produktion:

Syntaks 5

Angiver længden af ​​array og også værdien af ​​elementer, hvor alle værdier er ens

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

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

Syntaks 6

int * a; - Deklarerende matrix som en markør til placeringen af ​​elementer.

Intet indeks uden for bundet kontrol

I tilfælde af at man forsøger at få adgang til elementet uden for matrixens grænser, vises der ikke nogen fejl ved kompilatoren i stedet genererer det en advarsel. Og giver også en uventet output.

Eksempel

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

Hvis vi skriver printf (a (4));

Outputet vil være 225263545 - Uventet

I C er det, at compiler ikke fejler at initialisere en matrix med flere talelementer end den angivne længde i erklæringen. For eksempel viser nedenstående program ikke en fejl i stedet.

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

Produktion:

Genfinding af elementer i Array

Hentning af elementer i en matrix og udskrivning af dem er en meget nem opgave. Det kræver bare en løkke for at udskrive n elementer i en matrix. kompleksiteten af ​​et sådant program er således O (n).

For fx let int a (7) = (23, 56, 8, 944, 58, 24, 5);

Program til udskrivning af elementerne i en matrix er

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

Produktion:

Multidimensionel matrix

C-sprog tillader også multidimensionelle arrays, dvs. `arrays, der kan indeholde elementer i rækker såvel som kolonner.

Erklæring

Når man erklærer det flerdimensionale array, skal man specificere længden på alle dimensioner undtagen den venstre, fordi det er valgfrit.

Eksempel

At erklære array på nedenstående måde vil resultere i en fejl, da andre dimensioner end venstre mest ikke er angivet.

Int a () () (2) = (

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

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

)

Eksempel

Nedenfor er en af ​​de rigtige syntaks til erklæring af multidimensionel matrix i C.

Int a () (3) = (

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

)

Overfør Array som parameter i funktion

Undertiden mens vi laver en funktion, kræver vi, at funktionen bruger et antal variabler, som den skal tage fra forskellige funktioner. Den gang skal disse variabler sendes som en parameter til for dette funktionsopkald. Men efterhånden som antallet af variabler øges, skal vi bruge en matrix til at videregive variablen, eller i tilfælde af at nogle operationer skal udføres på arraysne, opstår der også behov for at videregive en komplet array som en parameter i en funktion. For at videregive en matrix som en variabel til funktionen:

1. Ring efter værdi

I denne type metodekald, kopieres de faktiske værdier for arrayet til den formelle parameter, hvor begge er lagret på forskellige placeringer, således ændres enhver ændring i værdierne ikke i funktionen.

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

Produktion:

2. Ring med reference

Når man kalder en funktion, når man i stedet for at videregive de faktiske værdier i matrixen, henvises henvisningen til variablen som en parameter, så kaldes den som opkald ved reference.

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

Produktion:

3. At videregive hele arrayet som et argument

F.eks. - Lad arr være en matrix med 7 elementer.disp er en funktion til at vise elementerne i en matrix, der tager 2 argumenter, først der peger på den første placering af matrixen og anden længden på arrayet (var2). funktionen arr-variabel, der peger på placeringen af ​​det første element i array og længde dvs. 7 passeres.

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

Produktion:

Hukommelsestildeling af array

Hukommelsesrepræsentation på C-sprog anses for at være opdelt i 5 sektioner som angivet nedenfor: -

  1. Tekstsegment
  2. Initialiseret datasegment
  3. Uinitialiseret datasegment
  4. Stak
  5. heap

Data, heap og stack er de tre segmenter, hvor arrays kan tildeles hukommelse til at gemme dets elementer, det samme som andre variabler.

  1. Dynamiske arrays: Dynamiske arrays er arrays, som har brug for hukommelsesplacering for at blive tildelt under kørsel. For disse typer arrays er hukommelse tildelt på heap-hukommelsens placering.
  2. Globale eller statiske arrays: Dette er den type arrays, der er allokeret på kompileringstidspunktet. Dermed tildeles datasegmenthukommelse altid til denne type arrays.
  3. Lokale arrays: De matriser, der initialiseres i en funktion eller blok, er kendt som lokale arrays. Disse typer arrays får hukommelse tildelt på stacksegmentet.

Karakter Array

I C betragtes strenge som en enkeltdimensional matrix med tegn med nulkarakter '\ 0' i sin sidste position, som compiler automatisk tilføjer til den.

F.eks. Betragtes “jeg elsker kodning” som en enkelt dimensionstabel i c med længde 14 inklusive '\ 0' karakter til sidst.

Erklæring: Der er 2 måder at erklære og initialisere karakteropstillingen-

  1. char str (12) = “jeg elsker kode”;
  2. char str (12) = ('Jeg', '', 'l', 'o', 'v', 'e', ​​'', 'c', 'o', 'd', 'e, ' \ 0 ''); - Her skal vi afslutte det med '\ 0' tegn i slutningen.
  3. Char ch (3) = 'modi' - Ulovlig erklæring

At tage input og output

Mens du tager input og viser output i C til char array '% c' kan der bruges henholdsvis scanf () og printf () -funktion.

Mens implementering af det samme for strengene “% s” kan bruges, men stopper scanningen efter forekomsten af ​​første whitespace-karakter.

C-program:

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

Produktion:

Bortset fra printf- og scanf-funktioner leverer C også strengfunktioner såsom get () og sætter () til at ignorere hvide mellemrum i streng under scanning og udskrivning.

Konklusion

Array er en type datastruktur, der bruges til at gemme de homogene data i et sammenhængende hukommelsessted. Arrays i programmering bruges som en repræsentation for forskellige komplekse datastrukturer såsom et træ, bunke osv. C sprog tillader multidimensionelle arrays for alle primitive datatyper. Strenge er også repræsenteret som et tegnsæt med nultegnet '\ 0' som dets sidste tegn. Arrays i programmering tillader hurtig hentning og direkte adgang til elementer af array ved hjælp af det indeks, hvor elementet er gemt.

Anbefalede artikler

Dette er en guide til Arrays i C-programmering. Her diskuterer vi introduktionen, behov for array sammen med passerende array-funktioner inkluderer opkald efter værdi, opkald efter reference og videregivelse af hele matrix som et argument. Du kan også se på de følgende artikler for at lære mere -

  1. 3D-arrays i C.
  2. Bedste C-kompilatorer
  3. Mønstre i C-programmering
  4. Factorial i C.
  5. Guide til arrays i C #
  6. 3D-arrays i C ++
  7. Vejledning til arrays i PHP
  8. C Programmering af matrixmultiplikation
  9. PHP Array-funktioner | Typer | eksempler

Kategori: