logo

Lengte van de array in C

De lengte van een array in C verwijst naar het aantal elementen in de array. Dit moet bij de aangifte worden vermeld. Het is ook bekend als de grootte van een array die wordt gebruikt om het geheugen te bepalen dat nodig is om al zijn elementen op te slaan. In de C-programmeertaal hebben we geen vooraf gedefinieerde functie om de lengte van de array te vinden, maar we kunnen deze handmatig bepalen met behulp van de verschillende hieronder genoemde methoden:

    Operator sizeof() gebruiken Aanwijzer gebruiken Rekenen Met lus

1. Operator sizeof() gebruiken

De operator sizeof is een unaire operator tijdens het compileren die de grootte van de variabelen en gegevenstypen berekent. Het retourneert een geheel getal dat de grootte van de expressie of een variabele in bytes vertegenwoordigt. De operator sizeof wordt voornamelijk gebruikt voor dynamische geheugentoewijzing, maar kan ook worden gebruikt om de lengte van een array te vinden.

De truc is om eerst de grootte van de hele array in bytes en de grootte van een enkel element te vinden met behulp van de operator sizeof en vervolgens de grootte van de hele array te delen door de grootte van een enkel element, zodat we het aantal elementen kunnen krijgen. in de array.



Syntaxis:

data_type size = sizeof(Array_name) / sizeof(Array_name[index]);>

In de bovenstaande syntaxis,

    data_type: Het is het type variabele waarin we de lengte van de array willen opslaan (zoals int, size_t, enz.). Arraynaam: Dit is de naam van de array waarvan u de grootte wilt vinden. sizeof(Arraynaam): It is een operator die de grootte van de gehele array in bytes retourneert. sizeof(Array_name[index]): Het retourneert de grootte van een enkel element in de array in bytes. index: Het is de index van elk element in de array.

Voorbeeld:

C


latex tafel



// C Program to calculate size of an array using sizeof()> // operator> #include> int> main()> {> >int> Arr[] = { 1, 2, 3, 4, 5 };> > >// variable to store size of Arr> >int> length =>sizeof>(Arr) />sizeof>(Arr[0]);> >printf>(>'The length of the array is: %d '>, length);> >return> 0;> }>

>

>

Uitvoer

The length of the array is: 5>

Tijdcomplexiteit: O(1) omdat alleen constante-tijdbewerkingen zijn uitgevoerd.

Ruimtecomplexiteit: O(1) omdat er geen extra ruimte is gebruikt.

2. Aanwijzerberekeningen gebruiken

We kunnen ook de lengte van een array in C berekenen met behulp van pointer-rekenkunde. Deze oplossing van het gebruik van een pointer is slechts een hack die wordt gebruikt om het aantal elementen in een array te vinden.

Syntaxis:

 data_type length = *(&arr + 1) - arr;>

In de bovenstaande syntaxis:

    &arr: verwijzing naar een reeks elementen. (&arr + 1): Adres van het geheugen vóór de array, aangezien het pointertype een pointer is naar een array met gehele getallen. *(&arr + 1) – arr: inclusief verschil tussen het begin en het einde van de array

Voorbeeld:

C




Excel verwijder het eerste teken

// C Program to calculate size of an array using pointer arithmetic> #include> int> main()> {> >int> Arr[] = { 1, 2, 3, 4, 5, 6 };> >// variable to store the size of Arr> >int> length = *(&Arr + 1) - Arr;> >printf>(>'Number of elements in Arr[] is: %d'>, length);> >return> 0;> }>

>

>

Uitvoer

Number of elements in Arr[] is: 6>

3. Loop gebruiken

De lusmethode wordt gebruikt om de lengte van een array in C te berekenen. Het doorloopt alle elementen van een array en verhoogt het aantal.

Voorbeeld:

C




// C Program to calculate size of an array using loop> #include> > int> arr_length(>int> arr[])> {> >int> i;> >int> count = 0;> >for>(i=0; arr[i]!=>' '>; i++)> >{> >count++;> >}> >return> count;> }> > int> main()> {> >int> arr[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};> >int> n;> > >n = arr_length(arr);> >printf>(>'Length of Array is: %d'>, n);> > >return> 0;> }> // This code is contributed by Susobhan Akhuli>

>

iets snel sorteren

>

Uitvoer

Length of Array is: 10>

Tijdcomplexiteit: O(n) waarbij n het aantal elementen in de array is.

Ruimtecomplexiteit: O(1) omdat er geen extra ruimte is gebruikt.

Opmerking: Houd er rekening mee dat deze methoden alleen werken als de array in hetzelfde bereik is gedeclareerd. Deze methoden zullen mislukken als we ze proberen op een array die als pointer wordt doorgegeven. Dit gebeurt als gevolg van Array Decay.

De iteratieve methoden voor het vinden van de lengte van de strings (reeks tekens) kunnen ook niet worden toegepast op de reeks van andere typen, aangezien er geen eindindicator in deze reekstypen is, in tegenstelling tot de ‘ ’ NULL teken dat het einde van de tekenreeks markeert.