#include #include int main() { // Für die Variable text wird hier einmalig vom C-Compiler // so viel Speicherplatz reserviert, wie der Text "Dies // ist ein Test!" benötigt. So gschrieben, kann man // die Angabe der Feldgröße in [] ausnahmsweise weglassen, // sie ist aber nach der Deklaration trotzdem nicht mehr // veränderlich! char text[] = "Dies ist ein Test!"; // Ein Zeichen (char) ist 1 Byte groß. 1 Byte sind 8 Bit, d.h. Sie // können also 2^8 verschiedene Zeichen darstellen. Wie das Zeichen // letztendlich am Bildschirm aussieht, bestimmt die Sprachein- // stellung des Betriebssystems. In Deutschland wird i.d.R. der // Zeichensatz iso8859-15 verwendet // (westeuropäisch mit EURO-Zeichen ¤). // Wieviel Speicher verwendet nun text insgesamt? // Nachzählen ergibt, dass der Text oben eigentlich nur // 18 Zeichen enthält, die folgende Zeile: printf("text belegt aktuell %d Bytes.\n", sizeof(text)); // gibt aber 19 aus. // // Damit ein printf() wie das folgende funktionieren kann, // braucht es Informationen darüber, wann die Zeichenkette // zu Ende ist. C (und Java) legt am Ende der sichtbaren // Zeichen, ein "0"-Zeichen im Speicher ab (Zahlenwert 0, // nicht das "Symbol" 0!) // printf("text lautet: %s\n", text); // Die Funktion strlen() aus string.h zählt alle Zeichen bis // (exklusive) zum 0-Zeichen. printf("text enthält %d Zeichen.\n", strlen(text)); return 0; }