Czy możemy zmodyfikować wartość stałej zmiennej?
Inne zastosowanie do deklarowania zmiennej jakoregister
iconst
ma zahamować wszelkie nielokalne zmiany tej zmiennej, nawet poprzez pobranie jej adresu, a następnie rzutowanie wskaźnika. Nawet jeśli uważasz, że sam nigdy byś tego nie zrobił, po przejściu wskaźnika (nawet z atrybutem const) do innej funkcji, nigdy nie możesz być pewien, że może to być złośliwe i zmienić zmienną pod stopami.
Nie rozumiem, w jaki sposób możemy zmodyfikować wartośćconst
zmienna wskaźnikiem. Czy to nie jest niezdefiniowane zachowanie?
const int a = 81;
int *p = (int *)&a;
*p = 42; /* not allowed */