Hallo,
* Daniel Feist
Ich habe folgende Frage zu diesem Programmausschnitt:
[..]
int main() { char wort[10]; wort[0]='B'; //(1) wort[1]='i'; wort[2]='l'; wort[3]='d'; wort[4]='\0';
[..]
Zu //(1) - warum muss das B hier in ' ' stehen und nicht in normalen Anführungszeichen(" ")? In dem eindimensionalen char-Array können ja 10 Werte gespeichert werden. Aber Halt! Eigentlich sind es ja nur neun, weil am Ende jeder String eine binäre Null stehen muss. Aber warum muss sie das? Kann mir das jemand erklären? Viele Dank schonmal im vorraus!
ich habe jetzt zwar alle Antworten gelesen, nur irgendwie fehlte mir was. In C sind Strings Arrays von Charactern. Ein Array in C ist nichts anderes als der Zeiger auf die Adresse des ersten Arrayelements. Somit ist test[2] nichts anderes als *( test + 2 ). Die Länge eines Arrays ist in C unbekannt und damit die Länge von Strings. Nun muss ja irgendwie festgelegt sein, wie lang ein String ist. Anstatt sich die Länge irgendwo zu speichern ist man dermaßen vorgegangen dass man gesagt hat, dass jeder String mit '\0' terminiert wird. Damit spart man sich eine Längeninformation. Gruß, Bernhard -- _________ http://www.bwalle.de _________________________________________________ Faulheit ist die Angewohnheit, sich auszuruhen, bevor man müde ist. -- (unbekannt)