Elminjo A. schrieb:
> Danke,
>
> 1. und 3. sind klar
> aber bei 2. mit
hätte ich gedacht ist
> dasselbe:
1 | char buf[] = { '0', '0', '0', '0', '0', '0', '0'};
|
> fehlt dann nicht das Nullzeichen '\0'?
Durchaus nicht. Denn
ist das ASCII-Zeichen der Ziffer 0, während
der Integerwert 0 ist, was dem ASCII-Zeichen NULL entspricht.
Allerdings sollte (wenn ich mich nicht gerade irre oder irgendeine
Änderung am Standard übersehen habe oder für char arrays ein Sonderfall
greift)
zum einen nicht alle Arrayelemente mit dem Integerwert 0
initialisieren - wenn überhaupt, nur das nullte - und zum anderen
vermutlich eine Warnung bringen, das die Anzahl der Elemente nicht
übereinstimmt.
An sich sollte das aber für alle üblichen Anwendungen, wie strcyp,
strlen, strcat usw. völlig hinreichen.
Ganz dumm, aber am geschicktesten, wäre meiner Meinung nach: