Konstanten verändern
03.03.2008
Author: N43
Eigentlich kann man Konstanten per Definition nicht verändern. Mittels Pointer lässt sich aber genau dies erreichen - die Konstante kann verändert werden.
Dazu legen wir einen Pointer an, der auf die Konstante zeigt. Zunächst wird der C-Compiler meckern, also konvertieren wir den Datentyp der Konstante explizit in eine "nicht konstante" und voila wir haben einen Pointer auf die Konstante, dessen Inhalt wir beliebig verändern können.
Das folgende Beispielprogramm demonstriert das ganze nochmals.
C - Code:
#include <stdio.h>
int main()
{
const int a = 5;
int *b = (int*)&a;
printf ("a ist: %i\n", a);
printf ("ändere Konstante a\n");
*b = 10;
printf ("a ist: %i", a);
}
int main()
{
const int a = 5;
int *b = (int*)&a;
printf ("a ist: %i\n", a);
printf ("ändere Konstante a\n");
*b = 10;
printf ("a ist: %i", a);
}
Aber: Auch wenn das Verändern von Konstanten über diesen Weg möglich ist sollte man doch darauf verzichten.Es führt unter Umständen sonst zu unerwarteten Ergebnissen, wenn man nicht mehr daran denkt die Konstante verändert zu haben.
Deine Meinung ist gefragt:
Sei der Erste und teile uns Deine Meinung mit.
Kommentare