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.