Co je Char Array?
Pole znaků je běžně známé ve většině počítačových programovacích jazyků jako char pole. Je to především proto, že „char“ je klíčové slovo v jazycích, jako je C, které se používá k deklaraci proměnné datového typu skalárního znaku. Pole char je sekvence znaků zaznamenaných v paměti na dlouhé řadě po sobě jdoucích adres, k nimž lze rychle získat přístup pomocí indexu prvku v poli. Stejně jako mnoho polí skalárních datových typů je výhodou použití znakového pole umožnění rychlého náhodného přístupu a nahrazení hodnot na libovolných pozicích v rámci pole.
V objektově orientovaných programovacích jazycích, jako je Java®, je důležité pochopit, že pole char představuje posloupnost skalárních hodnot, nikoli třídy nebo objekty. Skalární datový typ je takový, který je uložen pouze jako kus počátku, jako celé číslo. To je v kontrastu s řadou znakových objektů, která obsahuje metody a případně další podpůrné proměnné, jako jsou informace o serializaci nebo synchronizaci.
Znak ve většině počítačových jazyků je datový typ určený k uložení jediného písmene nebo symbolu, protože je reprezentován kódováním znaků používaným programem nebo operačním systémem. Z tohoto důvodu, s výjimkou silně standardizovaných jazyků, se skutečná velikost znaku v paměti může v každém systému lišit. Tato informace může změnit, když se pokoušíte procházet maticovým znakem pomocí aritmetiky ukazatele, kde namísto použití jednoduchých operátorů zvyšování a snižování musí výpočty ukazatele používat systémově definovanou velikost znaku. Spoléhání se na pole, ve kterém je velikost znaku 1 bajt nebo 2 bajty, může způsobit nepředvídatelné chování a chyby, pokud je program spuštěn v jiném systému, ve kterém lze znak definovat odlišně.
V některých programech by bylo možné použít řadu znaků jako základ pro implementaci datového typu třídy řetězců nebo pokročilých řetězců. V programovacím jazyce C jsou řetězce skutečně zpracovávány způsobem velmi podobným maticovému poli, ve kterém řetězec tvoří po sobě jdoucí posloupnost znaků a informuje program, že řetězec skončil nulovým znakem. Mohla by být navržena třída vlastních řetězců, která by toto chování emulovala pomocí pole.
Další použití pro char pole zahrnují provádění typů komprese nebo kódování, které nemusí být nutně založeno na oktetech, ale na lidských čitelných znakech. Pole může také sloužit jako typ vyrovnávací paměti pro zpracování delších bloků textu, které jsou drženy ve fyzickém mediálním souboru, nebo bloku, který se načítá ze síťového soketu. Většina funkcí, pro které je použito pole char, zahrnuje textový vstup a výstup jednoduše proto, že velikost skalárního znaku je v mnoha jazycích nepředvídatelná z jednoho systému a kompilátoru do jiného v mnoha jazycích, a proto se nelze spolehnout na to, že budou držet celé hodnoty nad určitý rozsah.