Stałe w C
Stałe w C są zmiennymi tylko do odczytu, których wartości nie można modyfikować po ich zadeklarowaniu w programie C. Typ stałej może być stałą całkowitą, stałą zmiennoprzecinkową, stałą łańcuchową lub stałą znakową. W języku C, konst Słowo kluczowe służy do definiowania stałych.
W tym artykule omówimy stałe w programowaniu w C, sposoby definiowania stałych w C, rodzaje stałych w C, ich właściwości oraz różnicę między literałami i stałymi.
Co to jest stała w C?
Jak sama nazwa wskazuje, stała w C jest zmienną, której nie można modyfikować po jej zadeklarowaniu w programie. Po ich zdefiniowaniu nie możemy dokonać żadnej zmiany wartości zmiennych stałych.
Jak zdefiniować stałą w C?
Definiujemy stałą w języku C za pomocą konst słowo kluczowe. Słowo kluczowe const, znane również jako kwalifikator typu const, jest umieszczane na początku deklaracji zmiennej, aby zadeklarować tę zmienną jako stałą.
Składnia definiująca stałą
const data_type var_name = value ;
Przykład stałych w C
C
// C program to illustrate constant variable definition> #include> int> main()> {> > // defining integer constant using const keyword> > const> int> int_const = 25;> > // defining character constant using const keyword> > const> char> char_const => 'A'> ;> > // defining float constant using const keyword> > const> float> float_const = 15.66;> > printf> (> 'Printing value of Integer Constant: %d
'> ,> > int_const);> > printf> (> 'Printing value of Character Constant: %c
'> ,> > char_const);> > printf> (> 'Printing value of Float Constant: %f'> ,> > float_const);> > return> 0;> }> |
Wyjście
Printing value of Integer Constant: 25 Printing value of Character Constant: A Printing value of Float Constant: 15.660000
Należy tu zwrócić uwagę na jedną rzecz: musimy to zrobić zainicjuj zmienne stałe w deklaracji . W przeciwnym razie zmienna będzie przechowywać jakąś śmieciową wartość i nie będziemy mogli jej zmienić. Poniższy rysunek opisuje przykłady niepoprawnych i poprawnych definicji zmiennych.
Rodzaje stałych w C
Typ stałej jest taki sam, jak typ danych zmiennych. Poniżej znajduje się lista typów stałych
- Stała całkowita
- Stała znaku
- Stała zmiennoprzecinkowa
- Stała zmiennoprzecinkowa podwójnej precyzji
- Stała tablicowa
- Struktura Stała
Musimy tylko dodać słowo kluczowe const na początku deklaracji zmiennej.
Właściwości stałej w C
Ważne właściwości zmiennych stałych w C zdefiniowanych za pomocą słowa kluczowego const są następujące:
1. Inicjalizacja z deklaracją
Możemy zainicjować stałą zmienną w C tylko w momencie jej deklaracji. W przeciwnym razie zapisze wartość śmieci.
2. Niezmienność
Stałe zmienne w c po zdefiniowaniu są niezmienne, tzn. mogą być inicjalizowane tylko raz w całym programie. Od tego momentu nie będziemy mogli modyfikować wartości przechowywanej w tej zmiennej.
C
// C Program to demonstrate the behaviour of constant> // variable> #include> int> main()> {> > // declaring a constant variable> > const> int> var;> > // initializing constant variable var after declaration> > var = 20;> > printf> (> 'Value of var: %d'> , var);> > return> 0;> }> |
Wyjście
In function 'main': 10:9: error: assignment of read-only variable 'var' 10 | var = 20; | ^
Różnica między stałymi i literałami
Stała i literały są często mylone jako to samo. Ale w języku C są to różne byty i mają różną semantykę. Poniższa tabela zawiera listę różnic pomiędzy stałymi i literałami w C:
| Stały | Literały |
|---|---|
| Stałe to zmienne, których po zadeklarowaniu nie można modyfikować. | Literały to stałe wartości, które same się definiują. |
| Stałe są definiowane przy użyciu słowa kluczowego const w języku C. Przechowują one same w sobie wartości dosłowne. | Oni sami są wartościami przypisanymi do zmiennych lub stałych. |
| Możemy określić adres stałych. | Nie możemy określić adresu literału z wyjątkiem literału łańcuchowego. |
| Są to wartości. | Są to wartości. |
| Przykład: const int c = 20. | Przykład: 24,15,5, „a”, Geeks itp. |
Definiowanie stałej przy użyciu preprocesora #define
Możemy również zdefiniować stałą w C za pomocą #zdefiniuj preprocesor . Stałe zdefiniowane za pomocą #define to makra, które zachowują się jak stała. Stałe te nie są obsługiwane przez kompilator, są obsługiwane przez preprocesor i są zastępowane ich wartością przed kompilacją.
#define const_name value
Przykład stałego makro
C
// C Program to define a constant using #define> #include> #define pi 3.14> int> main()> {> > printf> (> 'The value of pi: %.2f'> , pi);> > return> 0;> }> |
Wyjście
The value of pi: 3.14
Notatka: Ta metoda definiowania stałych nie jest preferowana, ponieważ może powodować błędy i utrudniać utrzymanie kodu.
Często zadawane pytania dotyczące stałych C
Pytanie 1. Zdefiniuj stałe C.
Odpowiedź:
Stałe w C to niezmienne zmienne, których wartości nie można modyfikować po ich zadeklarowaniu w programie C.
Pytanie 2. Jakie jest zastosowanie słowa kluczowego const?
Odpowiedź:
Słowo kluczowe const jest kwalifikatorem używanym do deklarowania zmiennej stałej w języku C.
Pytanie 3. Czy możemy zainicjować zmienną stałą po deklaracji?
Odpowiedź:
Nie, nie możemy zainicjować zmiennej stałej po jej zadeklarowaniu.
Pytanie 4. Jaki jest właściwy sposób deklarowania stałej w C?
Odpowiedź:
Właściwym sposobem zadeklarowania stałej w C jest zawsze inicjowanie zmiennej stałej podczas jej deklarowania.
Pytanie 5. Jaka jest różnica między stałą zdefiniowaną przy użyciu kwalifikatora const a #define?
Odpowiedź:
Poniższa tabela zawiera listę różnic pomiędzy stałymi zdefiniowanymi przy użyciu kwalifikatora const i #define w C:
Stałe wykorzystujące const Stałe używające #define Są to zmienne, które są niezmienne Są to makra, które są zastępowane przez ich wartość. Są obsługiwane przez kompilator. Są one obsługiwane przez preprocesor. Składnia: konst wpisz nazwę = wartość ; Składnia: #definiować wartość nazwy
Pytanie 6. Czy jest jakiś sposób na zmianę wartości stałej zmiennej w C?
Odpowiedź:
Tak, możemy wykorzystać lukę stworzoną przez wskaźniki, aby zmienić wartość zmiennej zadeklarowanej jako stała w C. Poniższy program w C pokazuje, jak to zrobić.
C
// C Program to change the value of constant variable>#include>int>main()>{>>// defining an integer constant>>const>int>var = 10;>>printf>(>'Initial Value of Constant: %d '>, var);>>// defining a pointer to that const variable>>int>* ptr = &var;>>// changing value>>*ptr = 500;>>printf>(>'Final Value of Constant: %d'>, var);>>return>0;>}>
Wyjście
Initial Value of Constant: 10 Final Value of Constant: 500Powiązany artykuł – Kwalifikator stałej w C