Moin, * Daniel Feist wrote (2004-02-28 14:45):
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(" ")?
Mit normalen Anführungszeichen bekommst Du einen C-String, also so: {'B', '\0'} Mit den einfachen Anführungszeichen bekommst Du also ein einzelnes Zeichen, wenn Du es haben willst. Du hättest das oben mit gleichem Ergebnis auch so schreiben können: char wort[10] = "Bild";
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.
Das sind dann schon zehn, oder?
Aber warum muss sie das?
In einem char-Array kann stehen, was Du willst, erst wenn Du einen gültigen C-String haben willst, muß dieser mit \0 abschließen. Das ist die Konvention für diese Strings, die auch von anderen Funktionen eingehalten wird. Thorsten -- Basically, any affirming superlative describes Mutt accurately and well. - David T-G