Переменные, константы и литералы в C: полное руководство
Переменные, константы и литералы в C
Это руководство охватывает основы переменных C, соглашений об именовании, типов литералов и объявления констант для надёжного кода.
Переменные в C
Переменная — это именованная область памяти, хранящая данные. Каждая переменная должна иметь уникальный идентификатор, представляющий адрес памяти.
int playerScore = 95;
Идентификатор playerScore хранит значение int равное 95. Переменные изменяемы — их значение может меняться во время выполнения.
char ch = 'a'; // позже в коде
ch = 'l';
Правила именования переменных
- Допустимые символы: буквы (A–Z, a–z), цифры (0–9) и подчёркивание.
- Первый символ должен быть буквой или подчёркиванием.
- Длина неограничена языком, но некоторые компиляторы обрезают имена длиннее 31 символа.
firstName вместо fn для читаемости и поддерживаемости.C — язык со строгой типизацией. После объявления тип данных переменной изменить нельзя.
int number = 5; // целое
number = 5.5; // ошибка
double number; // ошибка — повторное объявление с другим типом
Для хранения дробных значений объявляйте переменную как float или double. Подробнее о типах данных см. в нашем руководстве по типам данных.
Литералы
Литералы — это фиксированные значения, появляющиеся непосредственно в исходном коде. Они не могут меняться во время выполнения.
Целочисленные литералы
C поддерживает три основания для целочисленных литералов:
- Десятичное (база 10)
- Восьмеричное (база 8) — с префиксом
0 - Шестнадцатеричное (база 16) — с префиксом
0x
Десятичные: 0, -9, 22
Восьмеричные: 021, 077, 033
Шестнадцатеричные: 0x7f, 0x2a, 0x521
Литералы с плавающей точкой
Содержат дробную часть или экспоненту:
-2.0 0.0000234 -0.22E-5
E-5 равно 10-5.Символьные литералы
Одиночные символы в одинарных кавычках:
'a', 'm', 'F', '2', '}'
Escape-последовательности
Используйте обратный слэш для представления символов, которые нельзя набрать напрямую:
| Escape-последовательность | Значение |
|---|---|
\b | Backspace (забой) |
\f | Form feed (подача страницы) |
\n | Newline (новая строка) |
\r | Carriage return (возврат каретки) |
\t | Horizontal tab (горизонтальная табуляция) |
\v | Vertical tab (вертикальная табуляция) |
\\ | Backslash (обратный слэш) |
\' | Single quote (одинарная кавычка) |
\" | Double quote (двойная кавычка) |
\? | Question mark (вопросительный знак) |
\0 | Null character (нуль-символ) |
Пример: \n вставляет перенос строки.
Строковые литералы
Последовательности символов в двойных кавычках:
"good" // строковая константа
"" // пустая строка
" " // строка из шести пробелов
"x" // строковый литерал из одного символа
"Earth is round\n" // печатается с новой строки
Константы
Используйте ключевое слово const для объявления неизменяемых значений:
const double PI = 3.14;
PI = 2.9; // ошибка компиляции
Альтернативно, константы можно определить через директиву препроцессора #define. О макросах читайте в нашем руководстве по макросам C.
enum — именованные константы
Для группы связанных констант удобно использовать enum:
enum WeekDay { Mon, Tue, Wed, Thu, Fri, Sat, Sun };
enum Color { Red = 0xFF0000, Green = 0x00FF00, Blue = 0x0000FF };
enum обеспечивает типовую безопасность и читаемость по сравнению с #define.
Язык C
- Мастерство C# переменных и примитивных типов данных: полное руководство
- Освоение переменных, литералов и констант в C++: подробное руководство
- Переменные, константы и литералы в C: полное руководство
- Классы хранения в C: область видимости, время жизни и производительность
- Переменные, константы и литералы в Python — подробное руководство
- Глобальные, локальные и nonlocal переменные в Python: понимание и применение
- Переменные и литералы в Java: подробное руководство
- Типы переменных в Java: локальные, экземпляра и статические
- Переменные в C: объявление, определение, инициализация, область видимости и классы хранения
- Константы и литералы в C: целочисленные, вещественные, символьные, строковые и определение констант