Introduksjon til Arrays in C-programmering

Matrisen er en type datastruktur som brukes til å lagre homogene data i sammenhengende minneplasseringer.

Her refererer indeksen til plasseringen av et element i matrisen. La oss forestille oss om A (L) er navnet på matrisen der "A" er variabelenavnet og "L" er lengden på matrisen, dvs. antall elementer som er tilstede i matrisen.

Da representerer A (i) elementet i den “i + 1” posisjonen i arrayet. For eksempel:

A (6) = 72 betyr element på 6 + 1 plassering av matrisen.

Behov for Array

Det hjelper til med å representere et stort antall elementer ved å bruke en enkelt variabel. Det gjør det også enkelt å lagre tilgang til element på minneplass ved å bruke indeksen til matrisen som representerer plasseringen til et element i matrisen.

Få tilgang til elementer i Array

Det er mye enklere å få tilgang til ethvert element i matrisen og kan gjøres i O (1) kompleksitet

Indekser for en matrise starter fra 0 til -1, 0 indikerer det første elementet i matrisen og -1 indikerer det siste elementet i matrisen. Tilsvarende indikerer -2 det siste men ett element i matrisen.

For eksempel:

La A være en matrise med lengde 7 og man trenger tilgang til elementet med verdien 94, så må han bruke A (3).

syntax

printf ("% d", A (3)) - Dette vil skrive ut 94 der 3 er indeksen som vi trenger tilgang til og a er variabelen til arrayen.

Array-erklæring i C

I C må matrisen deklareres riktig før den brukes med navn og lengde. Det er tre syntakser som vi kan erklære arrays i ac-program

Syntaks 1

int A (7) = (21, 56, 32, 52, 63, 12, 48) - Erklæring om lengde og elementer 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;
)

Produksjon:

Syntaks 2

int A () = (21, 56, 32, 52, 63, 12, 48) - Erklæring om lengden på elementene 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;
)

Produksjon:

Syntaks 3

int A (7); - Bare angi lengden på matrisen.

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

Produksjon:

Syntaks 4

int A (7) = (0); - Deklarerende lengde på matrisen og elementet når et element er det samme på alle posisjoner.

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

Produksjon:

Syntaks 5

Erklarer lengden på matrisen og også verdien av elementer der alle verdiene er like

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

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

Syntaks 6

int * a; - Deklarerende matrise som en peker til plasseringen av elementer.

Ingen indekser utenfor kontrollen

I tilfelle man forsøker å få tilgang til elementet utenfor grensen for matrisen, vises ingen feil av kompilatoren i stedet genererer det en advarsel. Og gir også en uventet utgang.

Eksempel

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

Hvis vi skriver printf (a (4));

Outputen vil være 225263545 - Uventet

I C er det ikke kompilatoren som gjør feil med å initialisere en matrise med flere nummerelementer enn den angitte lengden i erklæringen. For eksempel viser ikke programmet nedenfor en feil 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;
)

Produksjon:

Innhenting av elementer i Array

Henting av elementer i en matrise og utskrift av dem er en veldig enkel oppgave. Det krever bare en løkke for å skrive ut n elementer i en matrise. kompleksiteten til et slikt program er derfor O (n).

For f.eks. La int a (7) = (23, 56, 8, 944, 58, 24, 5);

Program for å skrive ut elementene i en matrise 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;
)

Produksjon:

Flerdimensjonal matrise

C-språk tillater også flerdimensjonale matriser, dvs. `matriser som kan inneholde elementer i rader så vel som kolonner.

Erklæring

Når du erklærer flerdimensjonal matrise, må man spesifisere lengden på alle dimensjoner, bortsett fra den venstre, fordi det er valgfritt.

Eksempel

Hvis du erklærer rekke på nedenstående måte, vil det føre til en feil, ettersom andre dimensjoner enn de fleste ikke er spesifisert.

Int a () () (2) = (

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

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

)

Eksempel

Nedenfor er en av de riktige syntaksene for erklæring av flerdimensjonal matrise i C.

Int a () (3) = (

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

)

Passing Array som parameter i funksjon

Noen ganger mens vi lager en funksjon, krever vi at funksjonen bruker et antall variabler som den trenger å ta fra forskjellige funksjoner. Den gangen må disse variablene sendes som en parameter til for det funksjonssamtalet. Men etter hvert, når antallet variabler øker, må vi bruke en matrise for å passere variabelen, eller i tilfelle noen operasjoner må utføres på matriser, må det også oppstå behov for å passere et komplett array som en parameter i en funksjon. For å sende en matrise som en variabel til funksjonen:

1. Ring etter verdi

I denne typen metodeanrop, blir de faktiske verdiene for matrisen kopiert til den formelle parameteren der begge er lagret på forskjellige steder, slik at enhver endring i verdiene ikke gjenspeiles i funksjonen.

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

Produksjon:

2. Ring med referanse

Mens du ringer til en funksjon når referansen til variabelen blir sendt som en parameter i stedet for å passere de faktiske verdiene i matrisen, så blir den kjent som call by 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;
)

Produksjon:

3. Passing the Whole Array som et argument

F.eks. - La arr være en gruppe med 7 elementer. Spiss er en funksjon for å vise elementene i en matrise som tar to argumenter, først som peker til den første plasseringen av arrayen og annen lengden på matrisen (var2). funksjonen arr variabel som peker til plasseringen av det første elementet i matrise og lengde 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;
)

Produksjon:

Minnetildeling av matrise

Minnepresentasjon på C-språk anses å være delt inn i 5 seksjoner som gitt nedenfor: -

  1. Tekstsegment
  2. Initialisert datasegment
  3. Uinitialisert datasegment
  4. Stable
  5. heap

Data, heap og stack er de tre segmentene der matriser kan tildeles minne for å lagre elementene, det samme som andre variabler.

  1. Dynamiske matriser : Dynamiske matriser er matriser som trenger minneplassering for å bli tildelt under kjøretid. For denne typen matriser blir minnet tildelt på heap-minneplassering.
  2. Globale eller statiske matriser : Dette er den typen matriser som blir tildelt på kompileringstidspunktet. Dermed blir datasegmentminne alltid tildelt for denne typen matriser.
  3. Lokale matriser : Matriser som blir initialisert i en funksjon eller blokk er kjent som lokale matriser. Disse typene arrayer får minne tildelt på stacksegmentet.

Karakter Array

I C blir strengene betraktet som en endimensjonal gruppe med tegn med nulltegn '\ 0' i den siste posisjonen som kompilatoren automatisk legger til den.

For eksempel blir "jeg elsker koding" betraktet som en enkelt dimensjonsmatrise i c med lengde 14 inkludert '\ 0' karakter til slutt.

Erklæring: Det er to måter å erklære og initialisere karakteroppstillingen-

  1. char str (12) = “i love code”;
  2. char str (12) = ('Jeg', '', 'l', 'o', 'v', 'e', ​​'', 'c', 'o', 'd', 'e, ' \ 0 ''); - Her må vi avslutte det med '\ 0' karakter på slutten.
  3. Char char (3) = 'modi' - Ulovlig erklæring

Tar inngang og utgang

Mens du tar innspill og viser utdata i C for char array kan '% c' brukes henholdsvis scanf () og printf ().

Når du implementerer det samme for strengene "% s" kan brukes, men slutter å skanne etter forekomst av første mellomromstegn.

C-program:

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

Produksjon:

Bortsett fra printf- og scanf-funksjoner, tilbyr C også strengfunksjoner som får () og setter () til å ignorere hvite mellomrom i strengen mens du skanner og skriver ut.

Konklusjon

Array er en type datastruktur som brukes til å lagre de homogene dataene i et sammenhengende minneplass. Arrays i programmering brukes som en representasjon for forskjellige komplekse datastrukturer som et tre, heap, etc.C språk tillater flerdimensjonale matriser for alle primitive datatyper. Strenger er også representert som et tegnsett med nulltegnet '\ 0' som det siste tegnet. Arrays in Programming tillater rask gjenfinning og direkte tilgang til elementer av array ved bruk av indeksen der elementet er lagret.

Anbefalte artikler

Dette er en guide til Arrays i C-programmering. Her diskuterer vi Introduksjon, Needs of Array, sammen med Passing Array-funksjoner inkluderer Call by Value, Call by Reference og Passing hele array som et argument. Du kan også se på følgende artikler for å lære mer -

  1. 3D Arrays i C.
  2. Beste C-kompilatorer
  3. Mønstre i C-programmering
  4. Factorial i C.
  5. Guide to Arrays in C #
  6. 3D Arrays i C ++
  7. Guide to Arrays in PHP
  8. C Programmering av matrixmultiplikasjon
  9. PHP Array Functions | Typer | eksempler