Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial programming >> Язык C

Константы и литералы в C++: типы, синтаксис и лучшие практики

Константы — это фиксированные значения, которые программа не может изменять, их называют литералами.

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

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

Целые литералы

Целый литерал может быть десятичным, восьмеричным или шестнадцатеричным. Префикс указывает базу: 0x или 0X для шестнадцатеричного, 0 для восьмеричного, ничего — для десятичного.

Целый литерал может иметь суффикс — комбинацию U и L для unsigned и long соответственно. Суффикс может быть в любом регистре и порядке.

Примеры целых литералов:

212        // Допустимо
215u       // Допустимо
0xFeeL     // Допустимо
078        // Недопустимо: 8 не является восьмеричной цифрой
032UU      // Недопустимо: нельзя повторять суффикс

Другие примеры:

85         // десятичный
0213       // восьмеричный
0x4b       // шестнадцатеричный
30         // int
30u        // unsigned int
30l        // long
30ul       // unsigned long

Литералы с плавающей точкой

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

В десятичной форме нужно включать точку, экспоненту или оба. В экспоненциальной — целую часть, дробную часть или обе. Знаковую экспоненту вводят e или E.

Примеры:

3.14159        // Допустимо
314159E-5L     // Допустимо
510E           // Недопустимо: неполная экспонента
210f           // Недопустимо: нет точки или экспоненты
.e55           // Недопустимо: отсутствует целая или дробная часть

Булевы литералы

Существует два булевых литерала, входящие в стандартные ключевые слова C++:

Не следует считать true равным 1, а false — 0.

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

Символьные литералы заключаются в одинарные кавычки. Если литерал начинается с L (только заглавная), это широкий символ (например, L'x') и должен храниться в переменной типа wchar_t. Иначе — узкий символ (например, 'x'), хранится в char.

Символьный литерал может быть обычным символом (например, 'x'), escape-последовательностью (например, '\t') или универсальным символом (например, '\u02C0').

Некоторые символы в C++ после обратного слэша получают специальное значение (например, новая строка \n или таб \t). Таблица escape-последовательностей:

Escape-последовательностьЗначение
\\символ \
\'символ '
\"символ "
\?символ ?
\aЗвонок/алерт
\bBackspace
\fForm feed
\nНовая строка
\rВозврат каретки
\tГоризонтальная табуляция
\vВертикальная табуляция
\oooВосьмеричное число (1-3 цифры)
\xhh...Шестнадцатеричное число (1+ цифр)

Пример использования escape-последовательностей:

Live Demo
#include <iostream>
using namespace std;
int main() {
    cout << "Hello\tWorld\n\n";
    return 0;
}

Результат:

Hello World

Строковые литералы

Строковые литералы заключаются в двойные кавычки. Содержат символы, похожие на символьные литералы: обычные символы, escape-последовательности, универсальные символы.

Длинную строку можно разбить на несколько строк, используя строковые литералы, разделяя их пробелами.

Примеры. Все три формы — идентичные строки:

"hello, dear"
"hello, \ dear"
"hello, " "d" "ear"

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

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

Препроцессор #define

Форма использования #define для определения константы:

#define идентификатор значение

Пример:

Live Demo
#include <iostream>
using namespace std;
#define LENGTH 10
#define WIDTH 5
#define NEWLINE '\n'
int main() {
    int area;
    area = LENGTH * WIDTH;
    cout << area;
    cout << NEWLINE;
    return 0;
}

Результат:

50

Ключевое слово const

Можно использовать префикс const для объявления типизированных констант:

const тип переменная = значение;

Пример:

Live Demo
#include <iostream>
using namespace std;
int main() {
    const int LENGTH = 10;
    const int WIDTH = 5;
    const char NEWLINE = '\n';
    int area;
    area = LENGTH * WIDTH;
    cout << area;
    cout << NEWLINE;
    return 0;
}

Результат:

50

Хорошей практикой является определение констант ЗАГЛАВНЫМИ БУКВАМИ.

Язык C

  1. Освоение переменных, литералов и констант в C++: подробное руководство
  2. Понимание типов данных C++: основы, модификаторы и лучшие практики
  3. Освоение операторов C++: полное руководство с практическими примерами
  4. Комментарии в C++: лучшие практики для читаемого и поддерживаемого кода
  5. Шаблоны классов в C++: практическое руководство
  6. Переменные, константы и литералы в C: полное руководство
  7. Переменные, константы и литералы в Python — подробное руководство
  8. Константы и литералы в C: целочисленные, вещественные, символьные, строковые и определение констант
  9. Язык программирования C++: обзор и ключевые особенности
  10. Константы и литералы в C++: типы, синтаксис и лучшие практики