Masīva garums C attiecas uz elementu skaitu masīvā. Tas jānorāda deklarēšanas laikā. To sauc arī par masīva lielumu, ko izmanto, lai noteiktu atmiņu, kas nepieciešama visu tā elementu glabāšanai. Programmēšanas valodā C mums nav iepriekš definētas funkcijas, lai atrastu masīva garumu, taču mēs varam to manuāli noteikt, izmantojot dažādas tālāk minētās metodes:
- Operatora sizeof() izmantošana, izmantojot rādītāja aritmētiku, izmantojot cilpu
1. Operatora sizeof() izmantošana
Operators sizeof ir kompilēšanas laika unārs operators, kas aprēķina mainīgo lielumu un datu tipu lielumu. Tas atgriež vesela skaitļa vērtību, kas apzīmē izteiksmes vai mainīgā lielumu baitos. Operatoru sizeof galvenokārt izmanto dinamiskai atmiņas piešķiršanai, bet to var izmantot arī masīva garuma noteikšanai.
Viltība ir vispirms atrast visa masīva lielumu baitos un viena elementa izmēru, izmantojot operatoru sizeof, un pēc tam dalīt visa masīva lielumu ar viena elementa lielumu, lai mēs varētu iegūt elementu skaitu. masīvā.
Sintakse:
data_type size = sizeof(Array_name) / sizeof(Array_name[index]);>
Iepriekš minētajā sintaksē
- data_type: tas ir mainīgā veids, kurā vēlamies saglabāt masīva garumu (piemēram, int, size_t utt.). Masīva_nosaukums: tas ir tā masīva nosaukums, kura lielumu vēlaties atrast. izmērs(masīva_nosaukums): Tas ir operators, kas atgriež visa masīva lielumu baitos. sizeof(masīva_nosaukums[indekss]): tas atgriež viena elementa lielumu masīvā baitos. indekss: tas ir jebkura masīva elementa indekss.
Piemērs:
C
stīgu formatētājs
// 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;> }> |
>
>Izvade
The length of the array is: 5>
Laika sarežģītība: O(1), jo ir veiktas tikai konstanta laika darbības.
Kosmosa sarežģītība: O(1), jo nav izmantota papildu vieta.
2. Rādītāja aritmētikas izmantošana
Mēs varam arī aprēķināt masīva garumu C, izmantojot rādītāja aritmētiku. Šis rādītāja izmantošanas risinājums ir tikai uzlaušana, ko izmanto, lai atrastu elementu skaitu masīvā.
Sintakse:
data_type length = *(&arr + 1) - arr;>
Iepriekš minētajā sintaksē:
- &arr: Norādiet uz elementu masīvu. (&arr + 1): atmiņas adrese pirms masīva kā rādītāja veids ir rādītājs uz veselu skaitļu masīvu. *(&arr + 1) – arr: iekļaujoša atšķirība starp masīva sākumu un beigām
Piemērs:
javascript onclick
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;> }> |
>
>Izvade
Number of elements in Arr[] is: 6>
3. Izmantojot Loop
Cilpas metodi izmanto, lai aprēķinātu masīva garumu C. Tā atkārto visus masīva elementus un palielina skaitu.
Piemērs:
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> |
>
>Izvade
Length of Array is: 10>
Laika sarežģītība: O(n) kur n ir elementu skaits masīvā.
Kosmosa sarežģītība: O(1), jo nav izmantota papildu vieta.
java versija Linux
Piezīme: Lūdzu, ņemiet vērā, ka šīs metodes darbojas tikai tad, ja masīvs ir deklarēts tajā pašā tvērumā. Šīs metodes neizdosies, ja mēģināsim tās izmantot masīvā, kas tiek nodots kā rādītājs. Tas notiek Array Decay dēļ.
Iteratīvās metodes virkņu (rakstzīmju masīva) garuma noteikšanai nevar izmantot arī citu veidu masīvam, jo šajos masīva veidos nav beigu indikatora atšķirībā no ‘ ’ NULL rakstzīme, kas iezīmē virknes beigas.