Programowanie/Podstawowe konstrukcje/Stała: Różnice pomiędzy wersjami

Usunięta treść Dodana treść
Mku84 (dyskusja | edycje)
Utworzono nową stronę "== Stała == Czasami w programowaniu wykorzystuje się dane, które nie powinny zmieniać się w trakcie wykonywania programu. Są one nazywane stałymi. W języku C s..."
 
Mku84 (dyskusja | edycje)
Linia 11:
</source>
 
w języku C możliwe jest wymuszenie przypisania wartości stałej przy pomocy rzutowania wskaźnika. Jest to niezalecane, bo utrudnia zrozumienie kodu. Temat jest omawiany w podręcznikach języka C oraz w rozdziale poświęconym wskaźnikom.
 
<source lang="c">
// niezalecana podmiana typu wskaźnika umożliwiająca zmianę wartości stałej
 
// najpierw deklarujemy stałą
const int mojaStalaLiczba = 13;
 
// oraz deklarujemy uniwersalny wskaźnik
void *ptrMojaStalaLiczba;
 
// wskaźnik wskazuje na stałą. W zasadzie nie może służyć do przypisania wartości
ptrMojaStalaLiczba = &mojaSlataLiczba;
 
//spróbujmy nadpisać stałą.
*ptrMojaStalaLiczba = 18;// to nie przejdzie (zmienna jest chroniona przed nadpisaniem wartości)
 
*(int*)ptrMojaStalaLiczba = 18;// ale kompilator może myśleć, że wskaźnik wskazuje na zwykłą zmienną int.
// i w ten sposób można wymusić podmianę stałej
</source>