C/Tablice: Różnice pomiędzy wersjami

Dodane 2183 bajty ,  5 lat temu
Revert, usunięcie interwiki (teraz w Wikidanych)
(Revert, usunięcie interwiki (teraz w Wikidanych))
Znacznik: edytor kodu źródłowego 2017
[[Grafika:Array1.svg|thumb|250px|tablica 10-elementowa]]
 
==Wstęp==
===Sposoby deklaracji tablic===
==Odczyt/zapis wartości do tablicy==o elementu (wa się od zera, co oznacza, że pierwszy element tablicy ma indeks równy 0, drugi 1, trzeci 2, itd.
Tablicę deklaruje się w następujący sposób:
<source lang="c">
typ nazwa_tablicy[rozmiar];
</source>
gdzie rozmiar oznacza ile zmiennych danego typu możemy zmieścić w tablicy. Zatem aby np. zadeklarować tablicę, mieszczącą 20 liczb całkowitych możemy napisać tak:
<source lang="c">
int tablica[20];
</source>
Podobnie jak przy deklaracji zmiennych, także tablicy możemy nadać wartości początkowe przy jej deklaracji. Odbywa się to przez umieszczenie wartości kolejnych elementów oddzielonych przecinkami wewnątrz nawiasów klamrowych:
<source lang="c">
int tablica[3] = {0,1,2};
</source>
 
Niekoniecznie trzeba podawać rozmiar tablicy, np.:
<source lang="c">
int tablica[] = {1, 2, 3, 4, 5};
</source>
W takim przypadku kompilator sam ustali rozmiar tablicy (w tym przypadku - 5 elementów).
 
Rozpatrzmy następujący kod:
<source lang="c">
#include <stdio.h>
#define ROZMIAR 3
int main()
{
int tab[ROZMIAR] = {3,6,8};
int i;
puts ("Druk tablicy tab:");
for (i=0; i<ROZMIAR; ++i) {
printf ("Element numer %d = %d\n", i, tab[i]);
}
return 0;
}
</source>
Wynik:
 
Druk tablicy tab:
Element numer 0 = 3
Element numer 1 = 6
Element numer 2 = 8
 
Jak widać, wszystko się zgadza.
 
W powyżej zamieszczonym przykładzie użyliśmy stałej do podania rozmiaru tablicy. Jest to o tyle pożądany zwyczaj, że w razie potrzeby zmiany rozmiaru tablicy, zmieniana jest tylko wartość w jednej linijce kodu przy <tt>#define</tt>, w innym przypadku musielibyśmy szukać wszystkich wystąpień rozmiaru rozsianych po kodzie całego programu.
 
==Odczyt/zapis wartości do tablicy==
Tablicami posługujemy się tak samo jak zwykłymi zmiennymi. Różnica polega jedynie na podawaniu '''indeksu''' tablicy. Określa on, z którego elementu (wartości) chcemy skorzystać spośród wszystkich umieszczonych w tablicy. Numeracja indeksów rozpoczyna się od zera, co oznacza, że pierwszy element tablicy ma indeks równy 0, drugi 1, trzeci 2, itd.
 
{{Uwaga|Osoby, które wcześniej programowały w językach, takich jak [[Object Pascal|Pascal]], Basic czy [[Fortran]], muszą przyzwyczaić się do tego, że w języku C indeks numeruje się od 0.}}
Spróbujmy przedstawić to na działającym przykładzie. Przeanalizuj następujący kod:
<source lang="c">
int tatablica[5] = {0};
int i = 0;
tablica[2] = 3;
tablica[3] = 7;
for (i=0;i!=5;++i) {
 
==Tablice znaków==
Tablice znaków, tj. typu char oraz unsigned char, posiadają dwie ogólnie przyjęte nazwy, zależnie od ich przeznaczenia:
* bufory - gdy wykorzystujemy je do przechowywania ogólnie pojętych danych, gdy traktujemy je jako po prostu "ciągi bajtów" (typ char ma rozmiar 1 bajta, więc jest elastyczny do przechowywania np. danych wczytanych z pliku przed ich przetworzeniem).
* napisy - gdy zawarte w nich dane traktujemy jako ciągi liter; jest im poświęcony osobny rozdział [[C/Napisy|Napisy]].
 
[[C/Wskaźniki|Wskaźniki]]|
}}
[[et:Programmeerimiskeel C/Massiivid]]
[[en:C Programming/Arrays]]
[[it:C/Vettori e puntatori/Vettori]]
[[fi:C/Taulukot]]
</noinclude>