Rufus t. Firefly schrieb:
> Beachte, daß es hier um Pointer geht, die auf Strinkonstanten zeigen,
> aber nicht um die Zuweisung oder gar Änderung von Zeichenketten.
Und genau aus dem Grund sollte man auch anfangen const-Korrekt zu
programmieren.
1 | void inttochar(int i,char *ch)
|
2 | {
|
3 | cout << "\nFunktion InttoChar Wert: " << ch << "\n";
|
4 |
|
5 | strcpy( ch, "neuer Text" );
|
6 |
|
7 | cout << "Adresse: " << &ch << "\n";
|
8 | cout << "Funktion InttoChar Wert: " << ch << "\n\n";
|
9 | }
|
würde nämlich compilieren, obwohl es in diesem Zusammenhang völlig
falsch ist!
Auch ein
1 | int _tmain(int argc, _TCHAR* argv[])
|
2 | {
|
3 | const char *c = "alter Text";
|
4 |
|
5 | int i = 67;
|
wäre nicht verkehrt gewesen.
1 | void inttochar(int i, const char *ch)
|
2 | {
|
3 | cout << "\nFunktion InttoChar Wert: " << ch << "\n";
|
4 |
|
5 | strcpy( ch, "neuer Text" );
|
6 |
|
7 | cout << "Adresse: " << &ch << "\n";
|
8 | cout << "Funktion InttoChar Wert: " << ch << "\n\n";
|
9 | }
|
hingegen würde nicht compilieren. Das const fängt den Fehler ab.
1 | void bla( const char **ch)
|
2 | {
|
3 | *ch="neuer Text";
|
4 | }
|
compliert natürlich auch und ist auch korrekt.