logo

Masyvo ilgis C

Masyvo ilgis C reiškia elementų skaičių masyve. Jis turi būti nurodytas deklaruojant. Jis taip pat žinomas kaip masyvo dydis, kuris naudojamas nustatyti atmintį, reikalingą visiems jo elementams saugoti. C programavimo kalboje mes neturime jokios iš anksto nustatytos funkcijos masyvo ilgiui rasti, tačiau galime jį nustatyti rankiniu būdu, naudodami skirtingus toliau nurodytus metodus:

    „Sizeof()“ operatoriaus naudojimas žymeklio aritmetikos naudojimas naudojant kilpą

1. Operatoriaus sizeof() naudojimas

„Sizeof“ operatorius yra kompiliavimo laiko vienkartinis operatorius, apskaičiuojantis kintamųjų ir duomenų tipų dydį. Jis grąžina sveikojo skaičiaus reikšmę, kuri parodo išraiškos arba kintamojo dydį baitais. Operatorius sizeof pirmiausia naudojamas dinaminiam atminties paskirstymui, tačiau jis taip pat gali būti naudojamas masyvo ilgiui nustatyti.



Triukas yra pirmiausia rasti viso masyvo dydį baitais ir vieno elemento dydį naudojant operatorių sizeof, o tada viso masyvo dydį padalinti iš vieno elemento dydžio, kad gautume elementų skaičių. masyve.

Sintaksė:

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

Aukščiau pateiktoje sintaksėje



    data_type: tai kintamojo tipas, kuriame norime saugoti masyvo ilgį (pvz., int, size_t ir tt). Masyvo_pavadinimas: tai masyvo, kurio dydį norite sužinoti, pavadinimas. dydis(masyvo_pavadinimas): Tai yra operatorius, kuris grąžina viso masyvo dydį baitais. sizeof(Masyvo_pavadinimas[indeksas]): grąžina vieno masyvo elemento dydį baitais. indeksas: tai bet kurio masyvo elemento indeksas.

Pavyzdys:

C




stygų masyvas c programavimas



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

>

>

Išvestis

The length of the array is: 5>

Laiko sudėtingumas: O(1), nes buvo atliktos tik pastovaus laiko operacijos.

sukrauti į ds

Erdvės sudėtingumas: O(1), nes nebuvo panaudota papildomos vietos.

2. Rodyklės aritmetikos naudojimas

Taip pat galime apskaičiuoti masyvo ilgį C, naudodami rodyklės aritmetiką. Šis žymeklio naudojimo sprendimas yra tik įsilaužimas, naudojamas norint rasti elementų skaičių masyve.

Sintaksė:

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

Aukščiau pateiktoje sintaksėje:

    &arr: nukreipkite žymiklį į elementų masyvą. (&arr + 1): atminties adresas prieš masyvą kaip rodyklės tipas yra rodyklė į sveikųjų skaičių masyvą. *(&arr + 1) – arr: įskaitant skirtumą tarp masyvo pradžios ir pabaigos

Pavyzdys:

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

>

>

Išvestis

Number of elements in Arr[] is: 6>

3. Naudojant Loop

Ciklo metodas naudojamas masyvo ilgiui apskaičiuoti C. Jis kartojasi per visus masyvo elementus ir padidina skaičių.

Pavyzdys:

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>

>

>

Išvestis

Length of Array is: 10>

Laiko sudėtingumas: O(n) čia n yra elementų skaičius masyve.

Erdvės sudėtingumas: O(1), nes nebuvo panaudota papildomos vietos.

Pastaba: Atminkite, kad šie metodai veikia tik tada, kai masyvas deklaruojamas toje pačioje srityje. Šie metodai nepavyks, jei išbandysime juos masyve, kuris perduodamas kaip rodyklė. Tai atsitinka dėl Array Decay.

Iteraciniai eilučių ilgio (simbolių masyvo) nustatymo metodai taip pat negali būti taikomi kitų tipų masyvei, nes šiuose masyvo tipuose nėra pabaigos indikatoriaus, priešingai nei „ “ NULL simbolis, žymintis eilutės pabaigą.

cinamonas vs mate