Константы относятся к фиксированным значениям, которые программа не может изменить во время своего выполнения. Эти фиксированные значения также называются литералами .
Константы могут быть любого из основных типов данных, таких как целочисленная константа, плавающая константа, символьная константа или строковый литерал . Есть и константы перечисления.
Константы обрабатываются как обычные переменные, за исключением того, что их значения не могут быть изменены после их определения.
Целочисленные литералы
Целочисленный литерал может быть десятичной, восьмеричной или шестнадцатеричной константой. Префикс указывает основание или основание: 0x или 0X для шестнадцатеричного, 0 для восьмеричного и ничего для десятичного.
Целочисленный литерал также может иметь суффикс, который представляет собой комбинацию U и L для беззнакового и длинного соответственно. Суффикс может быть в верхнем или нижнем регистре и может быть в любом порядке.
Вот несколько примеров целочисленных литералов —
212 /* Legal */ 215u /* Legal */ 0xFeeL /* Legal */ 078 /* Illegal: 8 is not an octal digit */ 032UU /* Illegal: cannot repeat a suffix */
Ниже приведены другие примеры различных типов целочисленных литералов —
85 /* decimal */ 0213 /* octal */ 0x4b /* hexadecimal */ 30 /* int */ 30u /* unsigned int */ 30l /* long */ 30ul /* unsigned long */
Литералы с плавающей точкой
Литерал с плавающей точкой имеет целочисленную часть, десятичную точку, дробную часть и экспоненту. Вы можете представлять литералы с плавающей запятой в десятичной или экспоненциальной форме.
Представляя десятичную форму, вы должны включить десятичную точку, показатель степени или оба; и при представлении экспоненциальной формы вы должны включать целую часть, дробную часть или оба. Подписанный показатель вводится через e или E.
Вот несколько примеров литералов с плавающей точкой —
3.14159 /* Legal */ 314159E-5L /* Legal */ 510E /* Illegal: incomplete exponent */ 210f /* Illegal: no decimal or exponent */ .e55 /* Illegal: missing integer or fraction */
Константы персонажа
Символьные литералы заключены в одинарные кавычки, например, ‘x’ может храниться в простой переменной типа char .
Символьный литерал может быть простым символом (например, «x»), escape-последовательностью (например, «\ t») или универсальным символом (например, «\ u02C0»).
В С есть определенные символы, представляющие особое значение, когда им предшествует обратная косая черта, например, новая строка (\ n) или табуляция (\ t).
Последовательность побега | Имея в виду |
---|---|
\\ | \ персонаж |
\» | ‘ персонаж |
\» | » персонаж |
\? | ? персонаж |
\ а | Оповещение или звонок |
\ б | возврат на одну позицию |
\ е | Форма подачи |
\ п | Новая линия |
\р | Возврат каретки |
\ т | Горизонтальная вкладка |
\ v | Вертикальная вкладка |
\ ооо | Восьмеричное число от одной до трех цифр |
ххх , , | Шестнадцатеричное число из одной или нескольких цифр |
Ниже приведен пример, показывающий несколько символов escape-последовательности:
#include <stdio.h> int main() { printf("Hello\tWorld\n\n"); return 0; }
Когда приведенный выше код компилируется и выполняется, он дает следующий результат —
Hello World
Строковые литералы
Строковые литералы или константы заключаются в двойные кавычки «». Строка содержит символы, похожие на символьные литералы: простые символы, escape-последовательности и универсальные символы.
Вы можете разбить длинную строку на несколько строк, используя строковые литералы и разделяя их пробелами.
Вот несколько примеров строковых литералов. Все три формы являются одинаковыми строками.
"hello, dear" "hello, \ dear" "hello, " "d" "ear"
Определение констант
Есть два простых способа определения констант в C:
-
Использование #define препроцессора.
-
Используя ключевое слово const .
Использование #define препроцессора.
Используя ключевое слово const .
Препроцессор #define
Ниже приведена форма для использования препроцессора #define для определения константы —
#define identifier value
Следующий пример объясняет это подробно —
#include <stdio.h> #define LENGTH 10 #define WIDTH 5 #define NEWLINE '\n' int main() { int area; area = LENGTH * WIDTH; printf("value of area : %d", area); printf("%c", NEWLINE); return 0; }
Когда приведенный выше код компилируется и выполняется, он дает следующий результат —
value of area : 50
Ключевое слово const
Вы можете использовать префикс const для объявления констант определенного типа следующим образом:
const type variable = value;
Следующий пример объясняет это подробно —
#include <stdio.h> int main() { const int LENGTH = 10; const int WIDTH = 5; const char NEWLINE = '\n'; int area; area = LENGTH * WIDTH; printf("value of area : %d", area); printf("%c", NEWLINE); return 0; }
Когда приведенный выше код компилируется и выполняется, он дает следующий результат —
value of area : 50
Обратите внимание, что это хорошая практика программирования для определения констант в заглавных буквах.