Константи в C
Константи в C – це змінні, доступні лише для читання, значення яких не можна змінювати після того, як вони оголошені в програмі на C. Типом константи може бути ціла константа, константа з плаваючим вказівником, рядкова константа або символьна константа. У мові C, конст Ключове слово використовується для визначення констант.
У цій статті ми обговоримо константи в програмуванні на C, способи визначення констант у C, типи констант у C, їхні властивості та різницю між літералами та константами.
Що таке константа в C?
Як випливає з назви, константа в C - це змінна, яку неможливо змінити після того, як вона оголошена в програмі. Ми не можемо змінити значення постійних змінних після їх визначення.
Як визначити константу в C?
Ми визначаємо константу мовою C за допомогою конст ключове слово. Ключове слово const, також відоме як кваліфікатор типу const, розміщується на початку оголошення змінної, щоб оголосити цю змінну як константу.
Синтаксис для визначення константи
const data_type var_name = value ;
Приклад констант у 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;> }> |
Вихід
Printing value of Integer Constant: 25 Printing value of Character Constant: A Printing value of Float Constant: 15.660000
Одне, що слід зазначити, це те, що ми повинні ініціалізувати постійні змінні під час оголошення . В іншому випадку змінна зберігатиме деяке сміттєве значення, і ми не зможемо його змінити. На наступному зображенні описано приклади неправильних і правильних визначень змінних.
Типи констант у C
Тип константи такий самий, як і тип даних змінних. Нижче наведено список типів констант
- Ціла константа
- Символьна константа
- Константа з плаваючою комою
- Константа подвійної точності з плаваючою комою
- Константа масиву
- Структурна константа
Нам просто потрібно додати ключове слово const на початку оголошення змінної.
Властивості константи в C
Важливі властивості постійних змінних у C, визначені за допомогою ключового слова const, такі:
1. Ініціалізація з оголошенням
Ми можемо ініціалізувати постійну змінну в C лише під час її оголошення. Інакше він зберігатиме значення сміття.
2. Незмінність
Константні змінні в c є незмінними після його визначення, тобто їх можна ініціалізувати лише один раз у всій програмі. Після цього ми не зможемо змінити значення, що зберігається в цій змінній.
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;> }> |
Вихід
In function 'main': 10:9: error: assignment of read-only variable 'var' 10 | var = 20; | ^
Різниця між константами та літералами
Константу та літерали часто плутають як одне й те саме. Але в мові C це різні сутності та мають різну семантику. У наступній таблиці наведено відмінності між константами та літералами в C:
| Постійний | Літерали |
|---|---|
| Константи - це змінні, які не можна змінювати після оголошення. | Літерали — це фіксовані значення, які визначають себе. |
| Константи визначаються за допомогою ключового слова const у C. Вони зберігають у собі літеральні значення. | Вони самі є значеннями, які присвоюються змінним або константам. |
| Ми можемо визначити адресу констант. | Ми не можемо визначити адресу літералу, крім рядкового літералу. |
| Вони є цінностями. | Вони є r-цінностями. |
| Приклад: const int c = 20. | Приклад: 24, 15.5, «a», Geeks тощо. |
Визначення константи за допомогою препроцесора #define
Ми також можемо визначити константу в C за допомогою #визначити препроцесор . Константи, визначені за допомогою #define, є макросами, які поводяться як константи. Ці константи не обробляються компілятором, вони обробляються препроцесором і замінюються їх значенням перед компіляцією.
#define const_name value
Приклад константного макросу
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;> }> |
Вихід
The value of pi: 3.14
Примітка: Цей метод визначення константи не є кращим, оскільки він може створити помилки та ускладнити підтримку коду.
Поширені запитання про константи C
Q1. Визначте константи C.
відповідь:
Константи в C - це незмінні змінні, значення яких не можна змінити після того, як вони оголошені в програмі на C.
Q2. Яке використання ключового слова const?»
відповідь:
Ключове слово const — це кваліфікатор, який використовується для оголошення постійної змінної в мові C.
Q3. Чи можемо ми ініціалізувати постійну змінну після оголошення?
відповідь:
Ні, ми не можемо ініціалізувати постійну змінну після її оголошення.
Q4. Як правильно оголосити константу в C?
відповідь:
Правильний спосіб оголосити константу в C - це завжди ініціалізувати константну змінну під час оголошення.
Q5. Яка різниця між константою, визначеною за допомогою кваліфікатора const, і #define?
відповідь:
У наведеній нижче таблиці перераховано відмінності між константами, визначеними за допомогою кваліфікатора const і #define у C:
Константи за допомогою const Константи з використанням #define Це змінні, які є незмінними Це макроси, які замінюються їх значенням. Вони обробляються компілятором. Вони обробляються препроцесором. Синтаксис: конст ім'я типу = значення ; Синтаксис: #визначити значення імені
Q6. Чи є спосіб змінити значення постійної змінної в C?
відповідь:
Так, ми можемо скористатися лазівкою, створеною покажчиками, щоб змінити значення змінної, оголошеної як константа в C. Наведена нижче програма на C демонструє, як це зробити.
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;>}>
Вихід
Initial Value of Constant: 10 Final Value of Constant: 500Пов’язана стаття – Const Qualifier в C