Język C - wprowadzenie 
Modyfikator const

W programach (dosyć często) używamy wielkości, o których wiadomo, że nie powinny się zmieniać. Typowym przykładem jest liczba π.

Możemy oczywiście zastąpić każde wystąpienie π przez np. 3.14. Rozwiązanie to ma jednak bardzo poważną wadę - jeśli uznamy, że wielkość ta powinna być podana z inną dokładnością, to będziemy musieli przeglądnąć cały program i wprowadzić odpowiednią zmianę.

Modyfikator const przed nazwą zmiennej powoduje, że nie można zmodyfikować obiektu przy pomocy tej nazwy.

Powracając do przykładu z liczbą π - możemy zdefiniować stałą pi i wykorzystywać ją tak jak każdą inną zmienną z jednym zastrzeżeniem - nie można przypisać nowej wartości do stałej

const float pi = 3.14;
 
float promien = 3;
float poleKola = pi*r*r;
float obwodKola = 2*pi*r;

Próba przypisania nowej wartości do takiej zmiennej skończy się błędem kompilacji. Oznacza to w szczególności, że takie zmienne muszą być od razu zainicjalizowane

const float pi; // BŁĄD (na ogół) stała niezainicjalizowana
prog.cpp:3:15: error: uninitialized const 'pi'

Użycie zmiennej z modyfikatorem const ma wiele zalet

Dla dociekliwych:
  • pomimo użycia modyfikatora const można zmienić wartość takiej zmiennej (drobna sztuczka) - tylko po co?
  • w przyszłości przekonamy się, że w pewnych sytuacjach wartość zmiennej z const musi być nadawana w innym miejscu programu niż jej deklaracja (np. lista inicjalizacyjna w klasach)

Przykład - użycie stałej pi

Materiały przeznaczone wyłącznie dla studentów
Instytutu Informatyki i Matematyki Komputerowej UJ
Daniel Wilczak