Wprowadzenie do tablic w programowaniu C.
Tablica jest rodzajem struktury danych służącym do przechowywania jednorodnych danych w ciągłych lokalizacjach pamięci.
Tutaj indeks odnosi się do położenia elementu w tablicy. Wyobraźmy sobie, że A (L) to nazwa tablicy, gdzie „A” to nazwa zmiennej, a „L” to długość tablicy, tj. Liczba elementów obecnych w tablicy.
Następnie A (i) reprezentuje element w tej „i + 1” pozycji w tablicy. Na przykład:
A (6) = 72 oznacza element w miejscu 6 + 1.
Need for Array
Pomaga reprezentować dużą liczbę elementów za pomocą jednej zmiennej. Ułatwia także dostęp do elementu w celu łatwiejszego przechowywania go w pamięci za pomocą indeksu tablicy, który reprezentuje lokalizację elementu w tablicy.
Dostęp do elementów w tablicy
Dostęp do dowolnego elementu w tablicy jest znacznie łatwiejszy i można to zrobić w złożoności O (1)
Indeksy tablicy zaczynają się od 0 do -1.0 wskazuje pierwszy element tablicy, a -1 wskazuje ostatni element tablicy. Podobnie -2 wskazuje na przedostatni element tablicy.
Na przykład:
Niech A będzie tablicą o długości 7 i trzeba uzyskać dostęp do elementu o wartości 94, a następnie trzeba użyć A (3).
Składnia
printf (”% d”, A (3)) - Spowoduje to wydrukowanie 94, gdzie 3 to indeks, do którego musimy uzyskać dostęp, a a jest zmienną tablicy.
Deklaracja tablic w C
W C tablica musi zostać zadeklarowana poprawnie przed użyciem jej nazwy i długości. Istnieją trzy składnie, w których możemy zadeklarować tablice w programie ac
Składnia 1
int A (7) = (21, 56, 32, 52, 63, 12, 48) - Deklaracja długości i elementów tablicy
Program C.
#include
int main(
int a(7) = (21, 56, 32, 52, 63, 12, 48);
int i;
for(i=0;i<7;i++)(
printf(“%d\n”, a(i));
)
return 0;
)
Wynik:
Składnia 2
int A () = (21, 56, 32, 52, 63, 12, 48) - Deklaracja długości elementów tablicy
Program C.
#include
int main(
int a() = (21, 56, 32, 52, 63, 12, 48);
int i;
for(i=0;i<7;i++)(
printf(“%d\n”, a(i));
)
return 0;
)
Wynik:
Składnia 3
int A (7); - Deklarowanie tylko długości tablicy.
Program C.
#include
int main(
int a(7) ;
int i;
printf(“Please enter the array elements”);
for(i=0;i<7;i++)(
scanf(“%d\n”, &a(i));
)
printf(“Elements of array are”);
for(i=0;i<7;i++)(
printf(“%d\n”, a(i));
)
return 0;
)
Wynik:
Składnia 4
int A (7) = (0); - Deklarowanie długości tablicy i elementu, gdy element jest taki sam na wszystkich pozycjach.
Program C.
#include
int main(
int a(7)=(0) ;
int i;
printf(“Elements of array are”);
for(i=0;i<7;i++)(
printf(“%d\n”, a(i));
)
return 0;
)
Wynik:
Składnia 5
Deklaracja długości tablicy, a także wartości elementów, w których wszystkie wartości są takie same
Przypadek 1 - int a (3) = ((0..1) = 3) -
Przypadek 2 - int a (3) = (0); -
Składnia 6
int * a; - Deklaracja tablicy jako wskaźnika do lokalizacji elementów.
Brak sprawdzania wskaźnika poza zakresem
W przypadku próby uzyskania dostępu do elementu poza granicami tablicy, kompilator nie wyświetla błędu, zamiast tego generuje ostrzeżenie. A także daje nieoczekiwany wynik.
Przykład
a (4) = (2, 3, 4, 5);
Jeśli napiszemy printf (a (4));
Dane wyjściowe to 225263545 - nieoczekiwany
Ponadto w C kompilator nie popełnia błędu podczas inicjalizacji tablicy z większą liczbą elementów liczbowych niż określona długość w deklaracji. Na przykład poniższy program nie wyświetla zamiast tego błędu.
Program C.
#include
int main(
int arr(2)=(10, 22, 56, 32, 45, 89) ;
int i;
printf(“Elements of array are”);
for(i=0;i<2;i++)(
printf(“%d\n”, arr(i));
)
return 0;
)
Wynik:
Pobieranie elementów w tablicy
Pobieranie elementów tablicy i ich drukowanie jest bardzo łatwym zadaniem. Wymaga tylko jednej pętli, aby wydrukować n elementów tablicy. dlatego złożoność takiego programu wynosi O (n).
Na przykład - niech int a (7) = (23, 56, 8, 944, 58, 24, 5);
Program do drukowania elementów tablicy jest
Program C.
#include
int main(
int arr(7)=(23, 56, 8, 944, 58, 24, 5) ;
int i;
printf(“Elements of array are”);
for(i=0;i<7;i++)(
printf(“%d\n”, arr(i));
)
return 0;
)
Wynik:
Tablica wielowymiarowa
Język C dopuszcza również tablice wielowymiarowe, tj. Tablice, które mogą przechowywać elementy zarówno w wierszach, jak i kolumnach.
Deklaracja
Deklarując tablicę wielowymiarową, należy określić długość wszystkich wymiarów oprócz lewego, ponieważ jest to opcjonalne.
Przykład
Zadeklarowanie tablicy w poniższy sposób spowoduje błąd, ponieważ wymiary inne niż lewy najbardziej nie są określone.
Int a () () (2) = (
((1, 2), (3, 4)),
((5, 6), (7, 8))
)
Przykład
Poniżej znajduje się jedna z poprawnych składni deklaracji tablicy wielowymiarowej w C.
Int a () (3) = (
(52, 56, 86), (44, 6, 21)
)
Przekazywanie tablicy jako parametru w funkcji
Czasami podczas tworzenia funkcji wymagamy, aby funkcja używała wielu zmiennych, które musi pobierać z różnych funkcji. Tym razem zmienne te muszą zostać przekazane jako parametr dla tego wywołania funkcji. Ale w końcu, gdy liczba zmiennych rośnie, musimy użyć tablicy, aby przekazać zmienną, lub w przypadku, gdy niektóre operacje muszą zostać wykonane na tablicach, wówczas również konieczne jest przekazanie pełnej tablicy jako parametru w funkcji. Aby przekazać tablicę jako zmienną do funkcji:
1. Zadzwoń według wartości
W tym typie wywoływania metod rzeczywiste wartości tablicy są kopiowane do parametru formalnego, gdzie oba są przechowywane w różnych lokalizacjach, dlatego żadna zmiana wartości nie zostanie odzwierciedlona w funkcji.
Program C.
#include
Void show( char ch)
(
printf("%c ", ch);
)
int main()
(
char arr() = ('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j');
for (int x=0; x<10; x++)
(
show(arr(x));//value of array //elements are passed as an argument
)
return 0;
)
Wynik:
2. Zadzwoń przez referencję
Podczas wywoływania funkcji, gdy zamiast przekazywać rzeczywiste wartości tablicy, odwołanie do zmiennej jest przekazywane jako parametr, wówczas nazywane jest wywołaniem przez odniesienie.
Program C.
#include
Void show( char ch)
(
printf("%c ", ch);
)
int main()
(
char arr() = (1, 2, 3, 4, 5, 6, 7, 8, 9, 0);
for (int x=0; x<10; x++)
(
show(&arr(x));//reference of array //elements are passed as an argument
)
return 0;
)
Wynik:
3. Przekazywanie całej tablicy jako argumentu
Np. - Niech arr będzie tablicą 7 elementów. Disp to funkcja wyświetlająca elementy tablicy, które pobierają 2 argumenty, z których pierwszy wskazuje pierwszą lokalizację tablicy, a drugą długość tablicy (var2). przekazywana jest zmienna funkcji arr wskazująca położenie pierwszego elementu tablicy i długość, tj. 7.
Program C.
#include
void disp( int *var1, int var2)
(
for(int x=0; x (
printf("Value of var_arr(%d) is: %d \n", x, *var1);
/*increment pointer for next element fetch*/
var1++;
)
)
int main()
(
int var_arr() = (12, 22, 38, 85, 65, 66, 77);
disp(var_arr, 7);
return 0;
)#include
void disp( int *var1, int var2)
(
for(int x=0; x (
printf("Value of var_arr(%d) is: %d \n", x, *var1);
/*increment pointer for next element fetch*/
var1++;
)
)
int main()
(
int var_arr() = (12, 22, 38, 85, 65, 66, 77);
disp(var_arr, 7);
return 0;
)
Wynik:
Przydział pamięci tablicy
Reprezentację pamięci w języku C uważa się za podzieloną na 5 sekcji, jak podano poniżej:
- Segment tekstowy
- Zainicjowany segment danych
- Niezainicjowany segment danych
- Stos
- Sterta
Dane, sterta i stos to trzy segmenty, w których tablice można przydzielić pamięci do przechowywania jej elementów, tak samo jak inne zmienne.
- Tablice dynamiczne: tablice dynamiczne to tablice, które wymagają przydzielenia pamięci w czasie wykonywania. Dla tego typu tablic pamięć jest przydzielana w miejscu pamięci sterty.
- Globalne lub statyczne tablice: są to typy tablic, które są przydzielane podczas kompilacji. Dlatego pamięć segmentów danych jest zawsze przydzielana dla tego rodzaju tablic.
- Lokalne tablice: tablice inicjowane wewnątrz funkcji lub bloku są znane jako tablice lokalne. Te typy tablic otrzymują pamięć przydzielaną w segmencie stosu.
Tablica znaków
W C łańcuchy są traktowane jako jednowymiarowa tablica znaków ze znakiem zerowym „\ 0” na ostatniej pozycji, którą kompilator automatycznie do niej dodaje.
Na przykład „uwielbiam kodować” jest uważane za tablicę jednowymiarową c o długości 14 zawierającą na końcu znak „\ 0”.
Deklaracja: Istnieją 2 sposoby deklaracji i inicjalizacji tablicy znaków
- char str (12) = „kocham kod”;
- char str (12) = ('I', '', 'l', 'o', 'v', 'e', '', 'c', 'o', 'd', 'e, ' \ 0 ''); - Tutaj musimy zakończyć go znakiem „\ 0” na końcu.
- Char ch (3) = „modi” - nielegalna deklaracja
Pobieranie danych wejściowych i wyjściowych
Podczas pobierania danych wejściowych i wyświetlania danych wyjściowych w C dla tablicy znaków '% c' można użyć odpowiednio funkcji scanf () i printf ().
Podczas implementowania tego samego dla ciągów można użyć „% s”, ale zatrzymuje skanowanie w poszukiwaniu pierwszego znaku spacji.
Program C:
#include
#include
int main()
(
char str(20);
printf(“Enter a string”);
scanf(“%(^\n)”, &str);
printf(“%s”, str);
return 0;
)
Wynik:
Oprócz funkcji printf i scanf, C zapewnia również funkcje łańcuchowe, takie jak gets () i puts (), aby ignorować białe znaki łańcucha podczas skanowania i drukowania.
Wniosek
Tablica jest rodzajem struktury danych służącym do przechowywania jednorodnych danych w ciągłym miejscu pamięci. Tablice w programowaniu są używane jako reprezentacja różnych złożonych struktur danych, takich jak drzewo, sterty itp. Język C pozwala na wielowymiarowe tablice dla wszystkich pierwotnych typów danych. Ciągi są również reprezentowane jako tablica znaków ze znakiem zerowym „\ 0” jako ostatnim znakiem. Tablice w Programowaniu umożliwiają szybkie wyszukiwanie i bezpośredni dostęp do elementów tablicy za pomocą indeksu, w którym element jest przechowywany.
Polecane artykuły
Jest to przewodnik po tablicach w programowaniu C. Tutaj omawiamy Wprowadzenie, Needs of Array, a także Passing Array Funkcje obejmują Call by Value, Call by Reference i Passing cała tablica jako argument. Możesz także przejrzeć następujące artykuły, aby dowiedzieć się więcej -
- Tablice 3D w C
- Najlepsze kompilatory C.
- Wzory w programowaniu C.
- Silnia w C
- Przewodnik po tablicach w C #
- Tablice 3D w C ++
- Przewodnik po tablicach w PHP
- Mnożenie macierzy programowania C.
- Funkcje tablic PHP | Rodzaje | Przykłady