Vad är en Char Array?

En array av tecken är allmänt känd i de flesta datorprogrammeringsspråk som en char array. Detta beror främst på att ”char” är nyckelordet i språk som C som används för att deklarera en variabel av den skalära teckendatatypen. En char array är en sekvens av tecken inspelade i minnet i en lång rad av på varandra följande adresser som snabbt kan nås genom att använda indexet för ett element i arrayen. Liksom många arrayer av skalära datatyper är fördelarna med att använda en char array att möjliggöra snabb slumpmässig åtkomst och att ersätta värden på godtyckliga positioner inom arrayen.

I objektorienterade programmeringsspråk som Java® är det viktigt att förstå att en char-array representerar en sekvens av skalära värden och inte klasser eller objekt. En skalär datatyp är en som endast lagras som ett datum, som ett heltal. Detta i motsats till en rad karaktärsobjekt, som innehåller metoder och möjligen andra stödjande variabler som serialisering eller synkroniseringsinformation.

Ett tecken i de flesta datorspråk är en datatyp som är utformad för att hålla en enda bokstav eller symbol eftersom den representeras av teckenkodningen som används av programmet eller operativsystemet. Av denna anledning, förutom i starkt standardiserade språk, kan den faktiska storleken på ett tecken i minnet vara olika på varje system. Den här informationen kan göra skillnad när man försöker passera en char-matris med hjälp av pekaritmetik, där i stället för att använda enkla inkrement- och dekrementoperatorer måste pekarberäkningar använda den systemdefinierade teckenstorleken. Att förlita sig på en array där teckenstorleken är 1 byte eller 2 byte kan orsaka oförutsägbart beteende och fel om programmet körs på ett annat system där ett tecken skulle kunna definieras annorlunda.

Inom vissa program kan en array av tecken användas som grund för implementeringen av en strängklass eller avancerad strängdatatyp. I programmeringsspråket C hanteras strängar faktiskt på ett sätt som liknar en char-array där en följd av tecken bildar strängen, vilket informerar programmet om att strängen har slutat med ett nolltecken. En anpassad strängklass kan utformas för att emulera detta beteende med en array.

Andra användningsområden för en char-array inkluderar att utföra typer av komprimering eller kodning som inte nödvändigtvis är baserad på oktetter utan på läsbara tecken. Arrayen kan också fungera som en typ av buffert för bearbetning av längre textblock som finns i en fysisk mediefil, eller en som läses in från ett nätverksuttag. De flesta funktioner för vilka en char-array används involverar textinmatning och utmatning helt enkelt för att storleken på ett skalärt tecken är oförutsägbart från ett system och en kompilator till ett annat på många språk och därför inte kan litas på att hålla heltalsvärden utöver ett visst intervall.