logo

Lengde på array i C

Lengden på en matrise i C refererer til antall elementer i matrisen. Det må spesifiseres ved erklæringen. Det er også kjent som størrelsen på en matrise som brukes til å bestemme minnet som kreves for å lagre alle elementene. I programmeringsspråket C har vi ingen forhåndsdefinert funksjon for å finne lengden på matrisen, men vi kan bestemme den manuelt ved å bruke forskjellige metoder nevnt nedenfor:

    Bruke sizeof() Operator ved å bruke pekeraritmetikk ved å bruke sløyfe

1. Bruke sizeof() Operator

Størrelsesoperatoren er en unær operatør for kompileringstid som beregner størrelsen på variablene og datatypene. Den returnerer en heltallsverdi som representerer størrelsen på uttrykket eller en variabel i byte. Operatorens størrelse brukes primært til dynamisk minneallokering, men den kan også brukes til å finne lengden på en matrise.

Trikset er å først finne størrelsen på hele matrisen i byte og størrelsen på et enkelt element ved å bruke sizeof-operatoren og deretter dele størrelsen på hele matrisen med størrelsen på et enkelt element slik at vi kan få antall elementer i matrisen.



Syntaks:

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

I syntaksen ovenfor,

    data_type: Det er typen variabel der vi ønsker å lagre lengden på arrayet.(som int, size_t, etc.). Array_name: Det er navnet på arrayen du vil finne størrelsen på. sizeof(Array_name): It er en operator som returnerer størrelsen på hele matrisen i byte. sizeof(Array_name[indeks]): Den returnerer størrelsen på et enkelt element i matrisen i byte. indeks: Det er indeksen til ethvert element i matrisen.

Eksempel:

C


grunnleggende java



// 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;> }>

>

>

Produksjon

The length of the array is: 5>

Tidskompleksitet: O(1) da kun konstanttidsoperasjoner er utført.

erstatte alt java

Plass kompleksitet: O(1) da det ikke er brukt ekstra plass.

2. Bruke Pointer Aritmetic

Vi kan også beregne lengden på en matrise i C ved å bruke pekeraritmetikk. Denne løsningen med å bruke en peker er bare et hack som brukes til å finne antall elementer i en matrise.

Syntaks:

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

I syntaksen ovenfor:

    &arr: Peker til en rekke elementer. (&arr + 1): Adressen til minnet foran matrisen da pekertype er en peker til en matrise med heltall. *(&arr + 1) – arr: Inkluderende forskjell mellom starten og slutten av matrisen

Eksempel:

C




// 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;> }>

>

>

Produksjon

Number of elements in Arr[] is: 6>

3. Bruke Loop

Løkkemetoden brukes til å beregne lengden på en matrise i C. Den itererer gjennom alle elementene i en matrise og øker antallet.

Eksempel:

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>

>

>

Produksjon

Length of Array is: 10>

Tidskompleksitet: O(n) hvor n er antall elementer i matrisen.

Plass kompleksitet: O(1) da det ikke er brukt ekstra plass.

Merk: Vær oppmerksom på at disse metodene bare fungerer når matrisen er deklarert i samme omfang. Disse metodene vil mislykkes hvis vi prøver dem på en matrise som sendes som en peker. Dette skjer på grunn av Array Decay.

De iterative metodene for å finne lengden på strengene (array av tegn) kan heller ikke brukes på arrayen av andre typer siden det ikke er noen sluttindikator i disse arraytypene i motsetning til ' ' NULL tegn som markerer slutten av strengen.

sql-klausuler