logo

Længde af Array i C

Længden af ​​et array i C refererer til antallet af elementer i arrayet. Det skal angives på deklarationstidspunktet. Det er også kendt som størrelsen af ​​et array, der bruges til at bestemme den hukommelse, der kræves til at gemme alle dens elementer. I programmeringssprog C har vi ikke nogen foruddefineret funktion til at finde længden af ​​arrayet, men vi kan manuelt bestemme det ved at bruge forskellige metoder nævnt nedenfor:

    Bruger sizeof() Operator Bruger Pointer Aritmetic Bruger Loop

1. Brug sizeof() Operator

Størrelsen af ​​operatoren er en unær operator til kompileringstid, der beregner størrelsen af ​​variablerne og datatyperne. Det returnerer en heltalsværdi, der repræsenterer størrelsen af ​​udtrykket eller en variabel i bytes. Operatorens størrelse bruges primært til dynamisk hukommelsesallokering, men den kan også bruges til at finde længden af ​​et array.

Tricket er først at finde størrelsen af ​​hele arrayet i bytes og størrelsen af ​​et enkelt element ved hjælp af sizeof-operatoren og derefter dividere størrelsen af ​​hele arrayet med størrelsen af ​​et enkelt element, så vi kan få antallet af elementer i rækken.



Syntaks:

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

I ovenstående syntaks,

    data_type: Det er den type variabel, hvori vi ønsker at gemme længden af ​​arrayet.(såsom int, size_t, osv.). Array_name: Det er navnet på det array, du vil finde størrelsen på. sizeof(Array_name): It er en operator, der returnerer størrelsen af ​​hele arrayet i bytes. sizeof(Array_name[indeks]): Det returnerer størrelsen af ​​et enkelt element i arrayet i bytes. indeks: Det er indekset for ethvert element i arrayet.

Eksempel:

C


statisk nøgleord i 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;> }>

>

>

Produktion

The length of the array is: 5>

Tidskompleksitet: O(1), da der kun er udført konstanttidsoperationer.

træ- og grafteori

Rumkompleksitet: O(1), da der ikke er brugt ekstra plads.

2. Brug af Pointer Aritmetic

Vi kan også beregne længden af ​​et array i C ved hjælp af pointer-aritmetik. Denne løsning med at bruge en pointer er blot et hack, der bruges til at finde antallet af elementer i et array.

Syntaks:

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

I ovenstående syntaks:

    &arr: Marker til et array af elementer. (&arr + 1): Hukommelsesadresse foran arrayet, da pointertype er en pegepind til en matrix af heltal. *(&arr + 1) – arr: Inklusiv forskel mellem starten og slutningen af ​​arrayet

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

>

>

Produktion

Number of elements in Arr[] is: 6>

3. Brug af Loop

Sløjfemetoden bruges til at beregne længden af ​​et array i C. Det itererer gennem alle elementerne i et array og øger 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>

>

>

Produktion

Length of Array is: 10>

Tidskompleksitet: O(n) hvor n er antallet af elementer i arrayet.

Rumkompleksitet: O(1), da der ikke er brugt ekstra plads.

Bemærk: Bemærk venligst, at disse metoder kun virker, når arrayet er deklareret i samme omfang. Disse metoder vil mislykkes, hvis vi prøver dem på et array, der sendes som en pointer. Dette sker på grund af Array Decay.

De iterative metoder til at finde længden af ​​strengene (array af tegn) kan heller ikke anvendes på rækken af ​​andre typer, da der ikke er nogen slutindikator i disse matrixtyper i modsætning til ' ' NULL tegn, der markerer slutningen af ​​strengen.

javafx tutorial