Inleiding tot arrays in C-programmering

De array is een type gegevensstructuur die wordt gebruikt om homogene gegevens op te slaan op aangrenzende geheugenlocaties.

Hier verwijst index naar de locatie van een element in de array. Laten we ons voorstellen dat A (L) de naam is van de array, waarbij "A" de variabelenaam is en "L" de lengte van de array is, dat wil zeggen het aantal elementen in de array.

Dan vertegenwoordigt A (i) het element op die "i + 1" -de positie in de array. Bijvoorbeeld:

A (6) = 72 betekent element op 6 + 1 e locatie van array.

Need for Array

Het helpt om een ​​groot aantal elementen weer te geven met behulp van een enkele variabele. Het maakt ook de toegang tot een element sneller mogelijk om op te slaan in een geheugenlocatie met behulp van de index van de array die de locatie van een element in de array vertegenwoordigt.

Toegang tot elementen in array

Toegang tot elk element in de array is veel eenvoudiger en kan in de complexiteit van O (1) worden uitgevoerd

Indexen van een array beginnen van 0 tot -1, 0 geeft het eerste element van de array aan en -1 geeft het laatste element van de array aan. Evenzo geeft -2 het voorlaatste element van de array aan.

Bijvoorbeeld:

Laat A een array met lengte 7 zijn en moet men toegang krijgen tot het element met waarde 94, dan moet hij A (3) gebruiken.

Syntaxis

printf (”% d”, A (3)) - Hiermee wordt 94 afgedrukt waarbij 3 de index is waartoe we toegang moeten hebben en a de variabele van de array is.

Declaratie van array in C

In C moet de array correct worden gedeclareerd voordat deze met zijn naam en lengte wordt gebruikt. Er zijn drie syntaxis waarin we arrays in een ac-programma kunnen verklaren

Syntaxis 1

int A (7) = (21, 56, 32, 52, 63, 12, 48) - Declareren van de lengte en elementen van de array

C Programma

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

Output:

Syntaxis 2

int A () = (21, 56, 32, 52, 63, 12, 48) - Declareren van de lengte van elementen van array

C Programma

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

Output:

Syntaxis 3

int A (7); - Alleen de lengte van de array opgeven.

C Programma

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

Output:

Syntaxis 4

int A (7) = (0); - Declareren van de lengte van de array en het element wanneer een element op alle posities hetzelfde is.

C Programma

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

Output:

Syntaxis 5

Declaratie lengte van array en ook de waarde van elementen waar alle waarden hetzelfde zijn

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

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

Syntaxis 6

int * a; - Declaratie van een array als een pointer naar de locatie van elementen.

Geen index uit gebonden controle

In het geval dat men probeert toegang te krijgen tot het element buiten de grenzen van de array, wordt er geen fout weergegeven door de compiler, maar wordt een waarschuwing gegenereerd. En geeft ook een onverwachte output.

Voorbeeld

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

Als we printf (a (4)) schrijven;

De uitvoer is 225263545 - Onverwacht

In C is het ook geen fout om een ​​array te initialiseren met meer nummerelementen dan de opgegeven lengte in de declaratie. Het onderstaande programma geeft bijvoorbeeld geen fout weer.

C Programma

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

Output:

Ophalen van elementen in array

Elementen van een array ophalen en afdrukken is een heel gemakkelijke taak. Er is slechts één lus nodig om n elementen van een array af te drukken. dus is de complexiteit van een dergelijk programma O (n).

Voor eg- laat int a (7) = (23, 56, 8, 944, 58, 24, 5);

Programma voor het afdrukken van de elementen van een array is

C Programma

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

Output:

Multidimensionale array

C-taal maakt ook multidimensionale arrays mogelijk, dwz arrays die elementen in rijen en kolommen kunnen bevatten.

Verklaring

Bij het declareren van de multidimensionale array moet de lengte van alle dimensies worden opgegeven, behalve de linker omdat dat optioneel is.

Voorbeeld

Het op de onderstaande manier declareren van een array resulteert in een fout omdat andere dimensies dan de meeste links niet zijn opgegeven.

Int a () () (2) = (

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

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

)

Voorbeeld

Hieronder is een van de juiste syntaxis voor declaratie van multidimensionale array in C.

Int a () (3) = (

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

)

Array doorgeven als parameter in functie

Soms vereisen we bij het maken van een functie dat de functie een aantal variabelen gebruikt die het uit verschillende functies moet halen. Die tijd moeten die variabelen worden doorgegeven als parameter voor die functieaanroep. Maar uiteindelijk, als het aantal variabelen toeneemt, moeten we een array gebruiken om de variabele door te geven of, in het geval dat sommige bewerkingen op de arrays moeten worden uitgevoerd, dan ook nodig zijn om een ​​complete array als parameter in een functie door te geven. Voor het doorgeven van een array als variabele aan de functie:

1. Oproep op waarde

In dit type methode-aanroep worden de werkelijke waarden van de array gekopieerd naar de formele parameter waar beide op verschillende locaties worden opgeslagen, zodat wijzigingen in de waarden niet in de functie worden weerspiegeld.

C Programma

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

Output:

2. Oproep door referentie

Terwijl een functie wordt aangeroepen wanneer in plaats van de werkelijke waarden van de array door te geven, de verwijzing naar de variabele wordt doorgegeven als een parameter, staat deze bekend als call by reference.

C Programma

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

Output:

3. De hele array als argument doorgeven

Bijv. Laat een array van 7 elementen zijn ..disp is een functie om de elementen van een array weer te geven waarvoor 2 argumenten nodig zijn, eerst die verwijst naar de eerste locatie van de array en andere de lengte van de array (var2). de functie arr variabele die verwijst naar de locatie van het eerste element van array en lengte, dwz 7 wordt doorgegeven.

C Programma

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

Output:

Geheugentoewijzing van array

Geheugenrepresentatie in C-taal wordt geacht te zijn onderverdeeld in 5 secties zoals hieronder gegeven: -

  1. Tekstsegment
  2. Geïnitialiseerd gegevenssegment
  3. Niet-geïnitialiseerd gegevenssegment
  4. stack
  5. Hoop

Gegevens, heap en stack zijn de drie segmenten waar aan arrays geheugen kan worden toegewezen om de elementen op te slaan, hetzelfde als andere variabelen.

  1. Dynamische arrays: dynamische arrays zijn arrays, waarvoor geheugenlocatie moet worden toegewezen tijdens runtime. Voor dit type arrays wordt geheugen toegewezen op de heap-geheugenlocatie.
  2. Globale of statische arrays: dit zijn het type arrays dat tijdens het compileren wordt toegewezen. Datasegmentgeheugen wordt dus altijd toegewezen aan dit type arrays.
  3. Lokale arrays: de arrays die binnen een functie of blok worden geïnitialiseerd, worden lokale arrays genoemd. Deze types van arrays krijgen geheugen toegewezen op het stapelsegment.

Character Array

In C worden tekenreeksen beschouwd als een eendimensionale reeks tekens met het null-teken '\ 0' in de laatste positie die de compiler er automatisch aan toevoegt.

"I love coding" wordt bijvoorbeeld beschouwd als een matrix met één dimensie in c van lengte 14, inclusief het teken '\ 0'.

Verklaring: Er zijn 2 manieren om de tekenset te declareren en te initialiseren-

  1. char str (12) = "ik hou van code";
  2. char str (12) = ('I', '', 'l', 'o', 'v', 'e', ​​'', 'c', 'o', 'd', 'e, ' \ 0 ''); - Hier moeten we het eindigen met het teken '\ 0' aan het einde.
  3. Char ch (3) = 'modi' - Ongeldige aangifte

Input en output nemen

Tijdens het nemen van invoer en het weergeven van uitvoer in C voor char array kan '% c' respectievelijk de scanf () en printf () functie worden gebruikt.

Bij het implementeren van hetzelfde voor tekenreeksen kan "% s" worden gebruikt, maar stopt het scannen bij het optreden van het eerste witruimte-teken.

C-programma:

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

Output:

Afgezien van de functies printf en scanf, biedt C ook tekenreeksfuncties zoals gets () en put () om witte spaties van tekenreeksen te negeren tijdens het scannen en afdrukken.

Conclusie

Array is een type gegevensstructuur die wordt gebruikt om de homogene gegevens op te slaan op een aaneengesloten geheugenlocatie. Arrays in Programming worden gebruikt als een weergave voor verschillende complexe datastructuren zoals een boom, heap, enz. C-taal maakt multidimensionale arrays voor alle primitieve gegevenstypen mogelijk. Tekenreeksen worden ook weergegeven als een tekenreeks met het null-teken '\ 0' als laatste teken. Met Arrays in Programming kunnen snel elementen van een array worden opgehaald en direct worden gebruikt met behulp van de index waarin het element is opgeslagen.

Aanbevolen artikelen

Dit is een gids voor arrays in C-programmering. Hier bespreken we de introductie, behoeften van array, samen met het doorgeven van array-functies bevat Call by Value, Call by Reference en Passing hele array als argument. U kunt ook de volgende artikelen bekijken voor meer informatie -

  1. 3D-arrays in C
  2. Beste C-compilers
  3. Patronen in C-programmering
  4. Factorie in C
  5. Gids voor arrays in C #
  6. 3D-arrays in C ++
  7. Handleiding voor arrays in PHP
  8. C Matrixvermenigvuldiging programmeren
  9. PHP-arrayfuncties | Typen | Voorbeelden