logo

Délka pole v C

Délka pole v C odkazuje na počet prvků v poli. Musí být specifikováno v době prohlášení. Je také známá jako velikost pole, která se používá k určení paměti potřebné k uložení všech jeho prvků. V programovacím jazyce C nemáme žádnou předdefinovanou funkci pro zjištění délky pole, ale můžeme ji ručně určit pomocí různých metod uvedených níže:

    Pomocí operátoru sizeof() pomocí aritmetiky ukazatele pomocí smyčky

1. Použití operátoru sizeof().

Operátor sizeof je unární operátor v době kompilace, který vypočítává velikost proměnných a datových typů. Vrací celočíselnou hodnotu, která představuje velikost výrazu nebo proměnné v bajtech. Operátor sizeof se primárně používá pro dynamickou alokaci paměti, ale lze jej také použít k nalezení délky pole.

Trik je nejprve zjistit velikost celého pole v bajtech a velikost jednoho prvku pomocí operátoru sizeof a poté vydělit velikost celého pole velikostí jednoho prvku, abychom získali počet prvků v poli.



Syntax:

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

Ve výše uvedené syntaxi

    data_type: Je to typ proměnné, do které chceme uložit délku pole. (jako int, size_t atd.). Array_name: Je to název pole, jehož velikost chcete zjistit. sizeof(název_pole): It je operátor, který vrací velikost celého pole v bajtech. sizeof(název_pole[index]): Vrací velikost jednoho prvku v poli v bajtech. index: Je to index libovolného prvku v poli.

Příklad:

C


řetězec java concat



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

>

>

Výstup

The length of the array is: 5>

Časová náročnost: O(1), protože byly provedeny pouze operace s konstantním časem.

Prostorová složitost: O(1), protože nebylo použito žádné místo navíc.

2. Použití aritmetiky ukazatele

Můžeme také vypočítat délku pole v C pomocí aritmetiky ukazatele. Toto řešení pomocí ukazatele je jen hack, který se používá k nalezení počtu prvků v poli.

Syntax:

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

Ve výše uvedené syntaxi:

    &arr: Ukazatel na pole prvků. (&arr + 1): Adresa paměti před polem, protože typ ukazatele je ukazatel na pole celých čísel. *(&arr + 1) – arr: Zahrnující rozdíl mezi začátkem a koncem pole

Příklad:

C

kdy byla vynalezena škola




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

>

>

Výstup

Number of elements in Arr[] is: 6>

3. Použití smyčky

Metoda smyčky se používá k výpočtu délky pole v C. Iteruje všechny prvky pole a zvyšuje počet.

java objekt

Příklad:

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>

>

>

Výstup

Length of Array is: 10>

Časová náročnost: O(n) kde n je počet prvků v poli.

Prostorová složitost: O(1), protože nebylo použito žádné místo navíc.

Poznámka: Upozorňujeme, že tyto metody fungují pouze v případě, že je pole deklarováno ve stejném oboru. Tyto metody selžou, pokud je vyzkoušíme na poli, které je předáno jako ukazatel. To se děje kvůli Array Decay.

Iterační metody zjišťování délky řetězců (pole znaků) také nelze použít na pole jiných typů, protože v těchto typech polí neexistuje žádný koncový indikátor na rozdíl od „ “ NULL znak označující konec řetězce.