logo

Długość tablicy w C

Długość tablicy w C odnosi się do liczby elementów w tablicy. Należy to określić w momencie składania deklaracji. Znany jest również jako rozmiar tablicy używany do określenia pamięci wymaganej do przechowywania wszystkich jej elementów. W języku programowania C nie mamy żadnej predefiniowanej funkcji służącej do znajdowania długości tablicy, ale możemy ją określić ręcznie, korzystając z różnych metod wymienionych poniżej:

    Używanie operatora sizeof() Używanie arytmetyki wskaźników przy użyciu pętli

1. Użycie operatora sizeof().

Operator sizeof jest operatorem jednoargumentowym stosowanym w czasie kompilacji, który oblicza rozmiar zmiennych i typów danych. Zwraca wartość całkowitą reprezentującą rozmiar wyrażenia lub zmiennej w bajtach. Operator sizeof jest używany głównie do dynamicznej alokacji pamięci, ale można go również użyć do znalezienia długości tablicy.

Sztuka polega na tym, aby najpierw znaleźć rozmiar całej tablicy w bajtach i rozmiar pojedynczego elementu za pomocą operatora sizeof, a następnie podzielić rozmiar całej tablicy przez rozmiar pojedynczego elementu, abyśmy mogli otrzymać liczbę elementów w tablicy.



Składnia:

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

W powyższej składni

    typ_danych: Jest to typ zmiennej, w której chcemy przechowywać długość tablicy (np. int, size_t itp.). Array_name: Jest to nazwa tablicy, której rozmiar chcesz znaleźć. sizeof(nazwa_tablicy): It to operator zwracający rozmiar całej tablicy w bajtach. sizeof(nazwa_tablicy[indeks]): Zwraca rozmiar pojedynczego elementu w tablicy w bajtach. indeks: Jest to indeks dowolnego elementu tablicy.

Przykład:

C


wersje Androida



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

>

>

Wyjście

The length of the array is: 5>

Złożoność czasowa: O(1), ponieważ wykonano tylko operacje na stałym czasie.

Złożoność przestrzeni: O(1), ponieważ nie wykorzystano dodatkowej przestrzeni.

2. Korzystanie z arytmetyki wskaźników

Możemy również obliczyć długość tablicy w C, używając arytmetyki wskaźników. To rozwiązanie polegające na użyciu wskaźnika to po prostu trik używany do znalezienia liczby elementów w tablicy.

wartość ciągu

Składnia:

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

W powyższej składni:

    &arr: Wskaźnik do tablicy elementów. (&arr + 1): Adres pamięci przed tablicą, ponieważ typem wskaźnika jest wskaźnik do tablicy liczb całkowitych. *(&arr + 1) – arr: Łączna różnica między początkiem i końcem tablicy

Przykład:

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

>

>

Wyjście

Number of elements in Arr[] is: 6>

3. Korzystanie z pętli

Metoda pętli służy do obliczania długości tablicy w języku C. Wykonuje iterację po wszystkich elementach tablicy i zwiększa liczbę.

Przykład:

C




byki kontra wół

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

>

>

Wyjście

Length of Array is: 10>

Złożoność czasowa: O(n) gdzie n jest liczbą elementów tablicy.

Złożoność przestrzeni: O(1), ponieważ nie wykorzystano dodatkowej przestrzeni.

Notatka: Należy pamiętać, że te metody działają tylko wtedy, gdy tablica jest zadeklarowana w tym samym zakresie. Metody te zawiodą, jeśli spróbujemy ich na tablicy przekazywanej jako wskaźnik. Dzieje się tak z powodu rozpadu tablicy.

Iteracyjnych metod znajdowania długości ciągów znaków (tablicy znaków) również nie można zastosować do tablic innych typów, ponieważ w tych typach tablic nie ma wskaźnika końca, w przeciwieństwie do tablic „ ” NULL znak oznaczający koniec ciągu.