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

Usunięta treść Dodana treść
Lethern (dyskusja | edycje)
przeniesiono część z C/Tablice, uzupełniono
Lethern (dyskusja | edycje)
dopis tłumaczenia
Linia 34:
{{infobox|W pierwotnym standardzie języka C rozmiar tablicy nie mógł być określany przez zmienną lub nawet stałą zadeklarowaną przy użyciu [[C/Zmienne#Stałe|słowa kluczowego const]]. Dopiero w późniejszej wersji standardu (tzw. C99) dopuszczono taką możliwość. Dlatego do deklarowania rozmiaru tablic często używa się dyrektywy preprocesora [[C/Preprocesor##define|#define]]. Powinni na to zwrócić uwagę zwłaszcza [[C++/Różnice między C a C++|programiści C++]], gdyż tam zawsze możliwe były oba sposoby.}}
 
Innym sposobem jest użycie operatora <tt>sizeof</tt> do poznania wielkości tablicy. Poniższy kod robi to samo co przedstawiony:
<source lang="c">
#include <stdio.h>
Linia 50:
</source>
 
Powyżej <tt>sizeof tab</tt> zwraca cały rozmiar pamięciowy tablicy, natomiast <tt>sizeof *tab</tt> poda nam jaki jest rozmiar typu <tt>int</tt> (ponieważ takiego typu jest element tablicy, *tab). Dzieląc rozmiar pamięciowy tablicy przez rozmiar pojedynczego elementu uzyskujemy ilość elementów. (Np. przy rozmiarze 44B oraz rozmiarze sizeof(int) równym 4 otrzymujemy, że tablica zawiera 11 elementów.)
Należy pamiętać, że działa on tylko dla tablic, a nie wskaźników (jak później się dowiesz wskaźnik też można w pewnym stopniu traktować jak tablicę).
 
Należy pamiętać, że sposób działa on tylko dla tablic, a nie wskaźników (jak później się dowieszmimo wskaźnikże teżwskaźniki możnatraktujemy w pewnym stopniu traktowaćpodobnie jak tablicętablice).
 
== Pobieranie wartości ==