Hänge_Fest schrieb:
>
bedeutet doch das der Wert Konstant bleibt und
> unveränderbar ist, oder?
Jein.
Das kommt drauf an, wo dieses const benutzt wird.
hier an dieser Stelle, als Argument einer Funktion, kann man es lesen
als:
Lieber Aufrufer! Ich, die Funktion, werde nicht versuchen, das was du
mir übergibst zu verändern. Ich sichere zu, die const-ness dessen was du
mir gibst zu gewährleisten.
>
.. ja da von habe ich schonmal gelesen. * kenzeichnen
> Zeiger... das ist leider alles was ich dazu weiß.
Ja, das ist ein Zeiger.
(beim Variablennamen zu lesen anfangen)
const char * i
i ist ein i
i ist ein Zeiger * i
i ist ein Zeiger auf Character char * i
und diese(r) Character ist const const char * i
d.h. hier ist das worauf der Zeiger zeigt unveränderbar. Der Zeiger
selbst kann aber ohne weiteres verändert werden, so dass er woanders
hinzeigt.
> Zum Schluss beschäftigt mich noch
>1 | > lcd_data( *data++ );
|
2 | >
|
> bewirkt *data++ nicht das der Wert um eins erhöht wird?
Welcher Wert?
Du musst immer unterscheiden:
Wovon ist die Rede. Vom Zeiger selbst oder von dem worauf der Zeiger
zeigt.
Das ++ wirkt auf den Zeiger, aber nicht auf den Character, auf den der
Zeiger zeigt.
> Wird '\0' automatisch an ein ende "gehängt" ? Wenn ich z.B. schreibe:
Ja.
Die restlichen Fragen waren gut. Aber die hier verunsichert mich. Du
hast hoffentlich ein C-Buch? Ohne kommst du nicht weit, bei deinen
autodidaktischen C-Studien