Konstanty v C jsou proměnné pouze pro čtení, jejichž hodnoty nelze změnit, jakmile jsou deklarovány v programu C. Typ konstanty může být celočíselná konstanta, konstanta s plovoucím ukazatelem, řetězcová konstanta nebo znaková konstanta. V jazyce C, konst klíčové slovo se používá k definování konstant.
V tomto článku probereme konstanty v programování C, způsoby, jak definovat konstanty v C, typy konstant v C, jejich vlastnosti a rozdíl mezi literály a konstanty.
Co je konstanta v C?
Jak název napovídá, konstanta v C je proměnná, kterou nelze změnit, jakmile je deklarována v programu. Hodnotu konstantních proměnných po jejich definování nemůžeme nijak změnit.
Jak definovat konstantu v C?
Konstantu definujeme v jazyce C pomocí konst klíčové slovo. Klíčové slovo const, známé také jako kvalifikátor typu const, je umístěno na začátek deklarace proměnné, aby deklarovalo tuto proměnnou jako konstantu.
Syntaxe pro definování konstanty
const data_type var_name = value ;>

Příklad konstant v 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;> }> |
>
powershell vs bash
>Výstup
Printing value of Integer Constant: 25 Printing value of Character Constant: A Printing value of Float Constant: 15.660000>
Jedna věc, kterou je třeba poznamenat, je, že musíme inicializujte konstantní proměnné při deklaraci . V opačném případě bude proměnná ukládat nějakou nesmyslnou hodnotu a my ji nebudeme moci změnit. Následující obrázek popisuje příklady nesprávných a správných definic proměnných.

Typy konstant v C
Typ konstanty je stejný jako datový typ proměnných. Následuje seznam typů konstant
- Konstanta celého čísla
- Charakter Konstantní
- Konstanta s plovoucí desetinnou čárkou
- Konstanta s dvojitou přesností s plovoucí desetinnou čárkou
- Konstantní pole
- Konstantní struktura
Musíme pouze přidat klíčové slovo const na začátek deklarace proměnné.
zapouzdřovací program
Vlastnosti konstanty v C
Důležité vlastnosti konstantních proměnných v C definované pomocí klíčového slova const jsou následující:
1. Inicializace s deklarací
Konstantní proměnnou můžeme inicializovat pouze v C v době její deklarace. V opačném případě uloží hodnotu nesmyslu.
2. Neměnnost
Konstantní proměnné v c jsou po své definici neměnné, tj. mohou být inicializovány pouze jednou v celém programu. Poté již nemůžeme upravit hodnotu uloženou v této proměnné.
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;> }> |
>
>
Výstup
In function 'main': 10:9: error: assignment of read-only variable 'var' 10 | var = 20; | ^>
Rozdíl mezi konstantami a literály
Konstanta a literály jsou často zaměňovány jako stejné. Ale v jazyce C jsou to různé entity a mají odlišnou sémantiku. Následující tabulka uvádí rozdíly mezi konstantami a literály v C:
| Konstantní | Doslovy |
|---|---|
| Konstanty jsou proměnné, které po deklaraci nelze upravit. | Literály jsou pevné hodnoty, které definují samy sebe. |
| Konstanty jsou definovány pomocí klíčového slova const v C. Ukládají doslovné hodnoty v sobě. | Oni sami jsou hodnotami, které jsou přiřazeny proměnným nebo konstantám. |
| Můžeme určit adresu konstant. | Nemůžeme určit adresu literálu kromě řetězcového literálu. |
| Jsou to hodnoty. | Jsou to hodnoty. |
| Příklad: const int c = 20. | Příklad: 24,15,5, ‚a‘, Geeks atd. |
Definování konstanty pomocí #define Preprocessor
Můžeme také definovat konstantu v C pomocí #define preprocesor . Konstanty definované pomocí #define jsou makra, která se chovají jako konstanta. Tyto konstanty nezpracovává kompilátor, zpracovává je preprocesor a před kompilací jsou nahrazeny svou hodnotou.
#define const_name value>
Příklad konstantního makra
C
co je svn pokladna
// C Program to define a constant using #define> #include> #define pi 3.14> int> main()> {> >printf>(>'The value of pi: %.2f'>, pi);> >return> 0;> }> |
>
>Výstup
The value of pi: 3.14>
Poznámka: Tato metoda pro definování konstanty není preferována, protože může zavádět chyby a ztěžovat údržbu kódu.
Často kladené otázky o C konstantách
Q1. Definujte C konstanty.
Odpovědět:
Konstanty v C jsou neměnné proměnné, jejichž hodnoty nelze změnit, jakmile jsou deklarovány v programu C.
Q2. K čemu slouží klíčové slovo const?‘
Odpovědět:
Klíčové slovo const je kvalifikátor, který se používá k deklaraci konstantní proměnné v jazyce C.
Q3. Můžeme po deklaraci inicializovat konstantní proměnnou?
Odpovědět:
Ne, nemůžeme inicializovat konstantní proměnnou, jakmile je deklarována.
Q4. Jaký je správný způsob, jak deklarovat konstantu v C?
Odpovědět:
Správný způsob, jak deklarovat konstantu v C, je vždy inicializovat proměnnou konstanty, když deklarujeme.
Q5. Jaký je rozdíl mezi konstantou definovanou pomocí kvalifikátoru const a #define?
Odpovědět:
V následující tabulce jsou uvedeny rozdíly mezi konstantami definovanými pomocí kvalifikátoru const a #define v jazyce C:
Konstanty pomocí konst Konstanty pomocí #define Jsou to proměnné, které jsou neměnné Jsou to makra, která jsou nahrazena jejich hodnotou. Zpracovává je kompilátor. Jsou zpracovávány preprocesorem. Syntax: konst typ jméno = hodnota ; Syntax: #definovat hodnotu názvu
Q6. Existuje nějaký způsob, jak změnit hodnotu konstantní proměnné v C?
Odpovědět:
Ano, můžeme využít mezeru vytvořenou ukazateli ke změně hodnoty proměnné deklarované jako konstanta v C. Níže uvedený program C ukazuje, jak na to.
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;>}>sql ddl příkazy>>VýstupInitial Value of Constant: 10 Final Value of Constant: 500>Související článek – Const Qualifier v C