Seitenleiste

Wiki

Community

Datentypen

Zählbare

Fließkomma

Datenstrukturen

Attribute

Speicherklassen

Typqualifizierer

Inhaltsverzeichnis

Char

In C ist ein Char auf modernen Computern 1 Byte bzw. mindestens 8 Bit groß1). Die Bezeichung Char kommt daher, weil man den Datentyp vor allem dafür verwendet um Zeichen(engl. Characters) zu halten. Ein Array aus Chars nennt man Zeichenkette (C-String). Der Char Datentyp zählt zu den integeren 2) Datentypen, dass bedeutet er kann keine Fließkommazahlen speichern wie z.B. 3.14.

Man verwendet den Char zum Speichern von einzelnen Zeichen oder bei Char-Arrays zum Speichern von Zeichenketten. Eigentlich speichert sich der Char dann einfach nur den Zahlenwert des Zeichens, welches man eigentlich speichern möchte. Dafür wurden alle Werte von 0 bis 255 mit Zeichen belegt. Dies nennt man die ASCII Tabelle.

Als kleine Demonstration dient ein Programm wie dieses:

#include <stdio.h>
 
int main( int argc, char **argv )
{
  unsigned char ascii_char = 0; // Das erste Zeichen hat den Zahlwert 0
 
  while( ascii_char <= 127 )
  {
    printf( "Zahlenwert: %d. Dazugehöriges Zeichen: %c\n", ascii_char, ascii_char );
    ascii_char = ascii_char + 1; // Der Beweis, dass char Ganzzahlen hält
  }
 
  return 0;
}

Der Output ist fast identisch mit der Tabelle. Bloß wird z.B. statt TAB (Zeichen 8) wirklich ein Tabulator Sprung gemacht etc. Wäre unser Char nicht unsigned gäbe es Probleme. Eine Erklärung dazu findet man hier.

Strings

Um jedoch in C Strings zu erstellen müssen wir ein Array aus Chars erstellen. Dieses erstellt sich wie jedes andere Array auch. Es kann auch multidimensionale Char-Arrays geben, falls einem 256 Zahlen zum Rechnen ausreichen, oder man eine Art Kreuzworträtselalgorithmus schreiben möchte. Diese Arrays werden häufig verwendet um Spielfelder abzubilden.

Bei Char-Arrays, die man als Strings verwenden möchte, muss man jedoch aufpassen, dass sie mit einem Null-Byte ('\0') enden, damit der Compiler weiß, wo sich das Ende des Arrays befindet. Es ist jedoch oft üblich Char-Arrays dynamisch zu erstellen, um Platz zu sparen oder Datenverluste zu vermeiden.

siehe auch

1)
Es gibt auch Computeranlagen, deren Byte 9 bzw. 10 Bit breit ist
2)
ganzzahligen, zählbaren