Предыдущая часть – Курс C с нуля: часть 4 – токены и ключевые слова.
- константы в C фактически являются обычными переменными, с той разницей, что после инициализации их значение неизменно;
- константы так же называют литералами (literals);
- константы могут хранить данные любого типа.
Содержание
Синтаксис
const data_type variable_name;
или:
const data_type *variable_name;
Типы констант в C
- целочисленные константы;
- действительные константы;
- константы с плавающей точкой;
- восьмеричные и шестнадцатеричные константы;
- символьные константы;
- строковые константы;
- escape-последовательности.
Тип константы | Тип данных | Пример | |
1 | Численные константы | int |
53, 762, -478 etc 5000u, 1000U etc 483,647 2,147,483,680 |
2 | Вещественные константы и константы с плавающей точкой | float |
10.456789 600.123456789 |
3 | Восьмиричные константы | int |
013 /* starts with 0 */ |
4 | Шестнадцатеричные константы | int |
0×90 /* starts with 0x */ |
5 | Символьные константы | char |
‘A’ , ‘B’, ‘C’ |
6 | Строковые константы | char |
“ABCD” , “Hai” |
Правила определения констант в C
1. Целочисленные константы в C
- должна содержать как минимум одну цифру;
- не должна содержать десятичного разделителя;
- может быть как положительным так и отрицательным числом;
- недопустимо использование запятых или пробелов;
- если перед числом не указан знак – оно будет считаться положительным;
- допустимый диапазон значений от -32768 до 32767.
2. Действительные константы в C
- должна содержать как минимум одну цифру;
- должна содержать десятичный разделитель;
- может быть как положительным так и отрицательным числом;
- недопустимо использование запятых или пробелов;
- если перед числом не указан знак – оно будет считаться положительным.
3. Символьные и строковые константы в C
- символьная константа хранит одну букву, одну цифру или один спецсимвол, заключенные в одинарные кавычки;
- максимальная длина символьной константы 1 символ;
- строковые константы заключаются в двойные кавычки.
4. Escape-последовательности в C
- в C имеются специальные символы, начинающиеся с символа обратной косой черты ;
- в таблице ниже предоставлены основные из них:
Backslash_character | Meaning |
b |
Backspace |
f |
Form feed |
n |
New line |
r |
Carriage return |
t |
Horizontal tab |
” |
Double quote |
’ |
Single quote |
\ |
Backslash |
v |
Vertical tab |
a |
Alert or bell |
? | Question mark |
N |
Octal constant (N is an octal constant) |
XN |
Hexadecimal constant (N – hex.dcml cnst) |
Как использовать константы в C?
Константа может быть определена так:
- с помощью ключевого слова “
const
“; - с помощью директивы препроцессора “
#define
“;
- Помните, что значения констант должны оставаться неизменными в течении работы программы. Попытка изменить значение константы приведет к возникновению ошибки.
1. Пример программы на C с использованием ключевого слова const
#include <stdio.h> void main() { const int height = 100; /*int constant*/ const float number = 3.14; /*Real constant*/ const char letter = 'A'; /*char constant*/ const char letter_sequence[10] = "ABC"; /*string constant*/ const char backslash_char = '?'; /*special char cnst*/ printf("value of height :%d n", height ); printf("value of number : %f n", number ); printf("value of letter : %c n", letter ); printf("value of letter_sequence : %s n", letter_sequence); printf("value of backslash_char : %c n", backslash_char); }
Результат ее выполнения:
$ ./const value of height :100 value of number : 3.140000 value of letter : A value of letter_sequence : ABC value of backslash_char : ?
1. Пример программы на C с использованием директивы #define
#include <stdio.h> #define height 100 #define number 3.14 #define letter 'A' #define letter_sequence "ABC" #define backslash_char '?' void main() { printf("value of height : %d n", height ); printf("value of number : %f n", number ); printf("value of letter : %c n", letter ); printf("value of letter_sequence : %s n",letter_sequence); printf("value of backslash_char : %c n",backslash_char); }
Результат:
$ ./constdef value of height : 100 value of number : 3.140000 value of letter : A value of letter_sequence : ABC value of backslash_char : ?
Следующая часть – Курс C с нуля: часть 6 – переменные.