Константы в С++

КонстантыВ предыдущих статьях мы обсудили переменные и область видимости переменных в C++ и вы узнали, что значение, присваиваемое переменным, можно менять в течение всей программы.

Иногда, в зависимости от наших требований, нам нужны некоторые значения, которые нельзя изменить или модифицировать в программе. Однако мы не можем гарантировать, что если эти значения будут присвоены переменным, то они не изменятся в последующем. Это связано с тем, что характеристики самой переменной сущности не позволяют значениям быть постоянными.

В таких ситуациях нам нужна одна сущность, которой мы можем присвоить значение, чтобы оно осталось постоянным. Даже при попытке изменить это значение компилятор выдаст ошибку. Эта сущность называется константой/литералом. Их также называют символическими константами, поскольку есть особое имя для этих констант.

Напротив, постоянные значения, которые присваиваются переменным, называются литеральными константами. Константы могут иметь любой тип данных. Константы в C++ обрабатываются так же, как и переменные, за исключением того, что их значения не изменяются.

Типы данных констант

В C++ константы могут иметь любой тип данных. Все они являются «именованными константами», т.е. каждая из этих констант имеет имя.

Ниже перечислены типы констант в C++:

1) Целочисленные константы

Это константы, состоящие из целых чисел без десятичной точки. Также могут быть некоторые суффиксы, связанные с ними, в зависимости от того, является ли число подписанным, беззнаковым или длинным и т. д.

Читать также:  Классы и объекты в C++

Кроме того, эти константы могут иметь другое основание или систему счисления, например десятичную, восьмеричную или шестнадцатеричную. В этом случае мы указываем префикс к константе: 0 для восьмеричного, 0x для шестнадцатеричного и т. д. Мы не указываем никакого префикса для десятичных констант.

Ниже приведены некоторые примеры допустимой целочисленной константы в C++:

  • 0512 // восьмеричная
  • 0xFF // шестнадцатеричная
  • 36 // десятичная
  • 50L //длинная
  • 24U // без знаковая

Обратите внимание, что мы не можем повторять префикс или суффикс, например 50UU, так как это сделает константу недействительной.

2) Константы с плавающей запятой

Литералы с плавающей запятой — это литералы с десятичной точкой. Эти константы могут быть представлены в десятичной или экспоненциальной форме. Десятичная запись должна содержать десятичную точку, показатель степени или и то, и другое.

Представление экспоненциальной формы должно включать целую часть, дробь или и то, и другое. Мы должны представлять знаковый показатель как e или E.

Некоторые примеры допустимых литералов с плавающей запятой:

  • 3.142
  • 3142E -5L
  • 1.143

3) Символьные литералы

Эти литералы имеют символьный тип и обычно заключаются в одинарные кавычки (‘ ‘). Символьные литералы, начинающиеся с «L», являются широкосимвольными литералами и хранятся в типе wchar_t (широкосимвольный). Другие символьные литералы хранятся в символьном типе данных.

Литералы с широкими символами используются в основном в программировании с графическим интерфейсом, таком как MFC, или другом расширенном программировании, включая STL.

Читать также:  Сортировка вставками в C++

Некоторые примеры символьных литералов:

  • ‘xyz’
  • L’M’

Приведенные выше примеры символьных литералов являются простыми символами. Существуют также символьные литералы (управляющие последовательностью), которые придают особое значение нескольким символам. Они используются для представления действий, таких как символы новой строки, табуляции и т.д.

В приведенной ниже таблице перечислены символьные литералы, используемые в C++:

Последовательность выхода Значение
\’ одинарная кавычка
\” двойная кавычка
\? вопросительный знак
\a оповещение
\f смена страницы
\n новая строка
\r возврат каретки
\t горизонтальная табуляция
\v вертикальная табуляция
\ooo восьмеричный
\xhh… шестнадцатеричный

Эти символьные литералы в основном используются при форматировании в C++ и могут использоваться как комбинация одной или нескольких управляющих последовательностей.

Следующая программа C++ показывает использование некоторых из этих управляющих последовательностей:

Вывод данных:

Программа C++ для демонстрации управляющих последовательностей

Привет, СТХ

Как видно из приведенного выше кода, мы можем использовать эти управляющие последовательности в качестве комбинации для форматирования вывода.

4) Строковый литерал

Ниже приведены некоторые допустимые строковые литералы:

  • “Hello, World”
  • “Hello, /
  • World”
  • “Hello” “,” “World”

Все приведенные выше примеры представляют одну и ту же строку, но представлены по-разному.

Помимо типов данных литералов, описанных выше, у нас также есть логические литералы, которые используют ключевые слова «true» и «false» для представления констант.

Определение констант

В C++ есть два способа определения констант:

1) Использование директивы препроцессора #define

Мы можем определить константы, используя директиву препроцессора ‘#define’.

Читать также:  Библиотечные функции в C++

Пример показан ниже:

Вывод данных:

Площадь круга: 78,55

Окружность круга: 31,42

В приведенной выше программе есть две константы, определенные с помощью директивы «#define», PI и RADIUS. Затем внутри основной функции мы вычисляем площадь и периметр круга, используя эти константы. Обратите внимание на использование констант в программе.

2) Использование ключевого слова «const»

Другой способ определения констант — использование ключевого слова «const» с объявлением переменной.

Итак, если мы хотим определить константу с именем «RADIUS», мы делаем это следующим образом:

Мы будем использовать ту же программу, что и выше, чтобы объяснить этот тип определения константы.

Как показано в этой программе, мы определяем две константы, используя ключевое слово ‘const’.

Мы определили константы в основной функции в приведенном выше коде. В качестве альтернативы мы также можем определить эти константы глобально, прежде всего функции. В этом случае эти константы будут иметь глобальную область действия и называются «глобальными константами».

Примечание. Как показано в обоих примерах программирования, хорошей практикой программирования является определение констант ЗАГЛАВНЫМИ буквами.

Вывод

На этом наш разговор по константам подошел к концу. Константы полезны, когда мы хотим определить определенные математические значения, которые остаются неизменными.

В следующей статье мы расскажем о квалификаторах типов C++ и классах хранения, которые позволяют нам определять и использовать переменные в разных областях.

С Уважением, МониторБанк

Добавить комментарий