logo

Taulukon pituus C

C:n taulukon pituus viittaa taulukon elementtien määrään. Se on ilmoitettava ilmoituksen yhteydessä. Se tunnetaan myös taulukon kokona, jota käytetään määrittämään kaikkien elementtien tallentamiseen tarvittava muisti. C-ohjelmointikielessä meillä ei ole ennalta määritettyä funktiota taulukon pituuden löytämiseksi, mutta voimme määrittää sen manuaalisesti käyttämällä erilaisia ​​alla mainittuja menetelmiä:

    sizeof()-operaattorin käyttäminen Osoittimen aritmetiikkaa käyttämällä silmukkaa

1. Käytä sizeof()-operaattoria

sizeof-operaattori on käännösaikainen unaarioperaattori, joka laskee muuttujien ja tietotyyppien koon. Se palauttaa kokonaisluvun arvon, joka edustaa lausekkeen tai muuttujan kokoa tavuina. sizeof-operaattoria käytetään ensisijaisesti dynaamiseen muistin varaamiseen, mutta sitä voidaan käyttää myös taulukon pituuden selvittämiseen.

Temppu on löytää ensin koko taulukon koko tavuina ja yksittäisen elementin koko sizeof-operaattorilla ja sitten jakaa koko taulukon koko yksittäisen elementin koolla, jotta saadaan elementtien lukumäärä. taulukossa.



Syntaksi:

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

Yllä olevassa syntaksissa

    data_type: Se on muuttujan tyyppi, johon haluamme tallentaa taulukon pituuden. (kuten int, size_t jne.). Array_name: Se on sen taulukon nimi, jonka koon haluat selvittää. sizeof(Array_name): Se on operaattori, joka palauttaa koko taulukon koon tavuina. sizeof(Array_name[index]): Se palauttaa taulukon yksittäisen elementin koon tavuina. index: Se on minkä tahansa taulukon elementin indeksi.

Esimerkki:

C


vertaa javaan



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

>

>

Lähtö

The length of the array is: 5>

Aika monimutkaisuus: O(1), koska vain vakioaikaoperaatioita on tehty.

Tilan monimutkaisuus: O(1), koska ylimääräistä tilaa ei ole käytetty.

2. Osoitinaritmetiikka

Voimme myös laskea taulukon pituuden C:ssä käyttämällä osoitinaritmetiikkaa. Tämä osoittimen käyttöratkaisu on vain hakkerointi, jota käytetään taulukon elementtien lukumäärän löytämiseen.

Syntaksi:

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

Yllä olevassa syntaksissa:

java merkkijonojen vertailu
    &arr: Osoita elementtijoukkoa. (&arr + 1): Muistin osoite taulukon edessä osoitintyyppinä on osoitin kokonaislukujen taulukkoon. *(&arr + 1) – arr: Sisältää eron taulukon alun ja lopun välillä

Esimerkki:

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

>

>

Lähtö

Number of elements in Arr[] is: 6>

3. Loopin käyttö

Silmukkamenetelmää käytetään taulukon pituuden laskemiseen C-muodossa. Se iteroi taulukon kaikkien elementtien läpi ja lisää määrää.

Esimerkki:

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>

>

>

mikä on maven
Lähtö

Length of Array is: 10>

Aika monimutkaisuus: O(n) missä n on taulukon elementtien lukumäärä.

Tilan monimutkaisuus: O(1), koska ylimääräistä tilaa ei ole käytetty.

Huomautus: Huomaa, että nämä menetelmät toimivat vain, kun taulukko on ilmoitettu samassa laajuudessa. Nämä menetelmät epäonnistuvat, jos kokeilemme niitä taulukossa, joka välitetään osoittimena. Tämä tapahtuu Array Decayn vuoksi.

Iteratiivisia menetelmiä merkkijonojen pituuden löytämiseksi (merkkijono) ei myöskään voida soveltaa muiden tyyppien taulukkoon, koska näissä matriisityypeissä ei ole loppuosoittimia, toisin kuin ' ' NULL merkki, joka merkitsee merkkijonon loppua.