C (język programowania): Różnice pomiędzy wersjami
[wersja przejrzana] | [wersja przejrzana] |
Usunięta treść Dodana treść
→Krytyka: drobne merytoryczne |
m →Typy pochodne: arytmetyka wskaźników; przeredagowanie zdania o tym, że nazwa tablicy to adres zerowego elementu |
||
Linia 283:
=== Typy pochodne ===
Z niezerowej liczby obiektów tego samego typu można stworzyć [[Tablica (informatyka)|tablicę]]{{odn|ISO/IEC9899:2017|s=32}}. Jej elementy są ułożone w pamięci komputera po kolei i bez żadnych przerw{{odn|Kernighan|Ritchie|2002|s=136}}, a dostęp do nich można uzyskać za pomocą składni <code>''tablica''[''indeks'']</code>, gdzie indeksy rozpoczynają się od zera{{odn|Kernighan|Ritchie|2002|s=45}}{{#tag:ref|Operator indeksowania tablic <code>tab[i]</code> jest z definicji równoważny wyrażeniu <code>*(tab+i)</code>, a zatem indeksowanie jest przemienne. Konsekwencją tego faktu jest że zapisy <code>tab[i]</code> oraz <code>i[tab]</code> są równoważne i odnoszą się do i-tego elementu tablicy <code>tab</code>{{odn|Kernighan|Ritchie|2002|s=288}}.|group=uwaga}}. Do raz utworzonej zmiennej typu tablicowego nie jest możliwe [[przypisanie]] innej tablicy{{odn|Kernighan|Ritchie|2002|s=138}}.
Do przechowywania adresu obiektu określonego typu służą [[Wskaźnik (typ danych)|wskaźniki]]{{odn|Kernighan|Ritchie|2002|s=130–131}}. Dozwolone jest wykonywanie na nich niektórych operacji arytmetycznych. Dowolny wskaźnik można przyrównać do zera (oznaczającego [[literał pusty]], zapisywany też jako <code>NULL</code>){{odn|Kernighan|Ritchie|2002|s=141–143}}. Porównywanie oraz odejmowanie dwóch wskaźników jest
Jedna lub kilka zmiennych może tworzyć [[Struktura (programowanie)|strukturę]]. W przeciwieństwie do tablic, takie składowe mogą być różnych typów, a poszczególne pola rozróżnia się z użyciem ich identyfikatorów{{odn|Kernighan|Ritchie|2002|s=173–175}}. Każda struktura stanowi odrębną [[przestrzeń nazw]], toteż pole o tej samej nazwie może występować w kilku strukturach{{odn|Kernighan|Ritchie|2002|s=174}}{{odn|ISO/IEC9899:2017|s=29}}. Zagnieżdżanie struktur jest dozwolone – składowe mogą również być strukturami. Standard ISO C zabrania natomiast [[Rekurencja|rekursywnego]] zagnieżdżania struktury samej w sobie. Mimo to struktura może zawierać wskaźnik na inną strukturę tego samego typu{{odn|ISO/IEC9899:2017|s=81}}. Zarówno przypisywanie do zmiennej typu strukturalnego nowej wartości, jak i przekazywanie jej jako argument oraz zwracanie z funkcji są dopuszczalnymi operacjami{{odn|Kernighan|Ritchie|2002|s=175–176}}.
|