Переменные, типы данных и константы в C — практическое руководство
Что такое переменная?
Переменная — идентификатор, хранящий значение. В отличие от констант, значение переменной может меняться во время выполнения программы.
На переменные можно ссылаться из разных мест программы. Описательное имя помогает читателю понять назначение переменной.
int height = 170; // рост в сантиметрах int age = 29; // возраст в годах
Перед использованием переменную нужно объявить. Имена переменных могут содержать буквы, цифры и подчеркивания, но должны начинаться с буквы или подчеркивания.
Правила именования переменных
- Только буквы (a-z, A-Z), цифры (0-9) и подчеркивание (_).
- Не могут начинаться с цифры.
- Пробелы запрещены.
- Не могут быть зарезервированными ключевыми словами.
- C чувствителен к регистру:
ageиAGE— разные идентификаторы.
Валидные и невалидные имена
Валидные:
height _HEIGHT _height1 My_name
Невалидные:
1height Hei$ght My name
Объявление и инициализация переменных
Сначала объявите, потом присвойте:
int my_variable; my_variable = 48;
Или объедините объявление и инициализацию:
int my_variable = 48;
Обзор типов данных
C предлагает три категории типов данных:
- Примитивные (int, char, float, double, void)
- Производные (массивы, функции, указатели, структуры)
- Пользовательские (typedef, структуры, перечисления, объединения)
Примитивные типы данных
Пять фундаментальных типов:
- int — целые числа
- char — отдельные символы
- float — одинарная точность с плавающей точкой
- double — двойная точность с плавающей точкой
- void — отсутствие значения (используется в сигнатурах функций)
Стандартные размеры и диапазоны типов данных
| Тип данных | Размер (байт) | Диапазон |
|---|---|---|
| char / signed char | 1 | -128 до 127 |
| unsigned char | 1 | 0 до 255 |
| int / signed int | 2 | -32768 до 32767 |
| unsigned int | 2 | 0 до 65535 |
| short int / unsigned short int | 2 | 0 до 65535 |
| signed short int | 2 | -32768 до 32767 |
| long int / signed long int | 4 | -2147483648 до 2147483647 |
| unsigned long int | 4 | 0 до 4294967295 |
| float | 4 | ±3.4E-38 до ±3.4E+38 |
| double | 8 | ±1.7E-308 до ±1.7E+308 |
| long double | 10 | ±3.4E-4932 до ±1.1E+4932 |
Примечание: В C нет встроенного булевого типа; используйте int с 0 (false) или 1 (true) или заголовочный файл stdbool.h для bool.
Целочисленные типы данных
Целые числа — это целые значения. Стандартный 16-битный int диапазона от –32768 до 32767. Существуют более короткие и длинные варианты для подходящего диапазона.
Типичные объявления:
int age; short int smallCount; long int largeCount;
Типы данных с плавающей точкой
Используйте float для значений с дробной частью до ~6 знаков точности. double дает ~14 знаков, а long double — максимальную точность.
Примеры:
float ratio = 0.75f; double balance = 12345.6789; long double pi = 3.141592653589793238462643383279502884L;
Символьный тип данных
Хранит один символ в одно байтовое значение. Символы указываются в одинарных кавычках.
Пример:
char letter = 'K';
Тип данных void
Указывает, что функция не возвращает значение.
Пример:
void displayData(void) { // ... }
Объявление нескольких переменных
Переменные одного типа можно объявлять в одну строку через запятую:
int x, y, z; float salary = 13.48f; char letter = 'K';
Примеры вывода используют спецификаторы формата:
printf("%d\n", z); printf("%f\n", salary); printf("%c\n", letter);
Константы
Значение константы никогда не меняется во время выполнения программы. C предоставляет несколько форм:
Целочисленные константы
Десятичные, восьмеричные (с префиксом 0) и шестнадцатеричные (с префиксом 0x) литералы.
Примеры:
111 // десятичное 012 // восьмеричное (10 десятичное) 0x2BCD // шестнадцатеричное (19293 десятичное)
Символьные константы
Одиночный символ в одинарных кавычках или по его ASCII-коду.
Примеры:
'A' '9'
Строковые константы
Последовательность символов в двойных кавычках.
Примеры:
"Hello" "Programming"
Вещественные (с плавающей точкой) константы
Числа с десятичной точкой или в научной нотации.
Примеры:
202.15 300.00 1.23e-4 // 0.000123
Определение констант через const и #define
Использование const резервирует память и обеспечивает неизменность:
#include <stdio.h> int main(void) { const double PI = 3.141592653589793; printf("%f\n", PI); return 0; }
Использование #define — препроцессорный макрос, не потребляющий память:
#include <stdio.h> #define PI 3.141592653589793 int main(void) { printf("%f\n", PI); return 0; }
Резюме
- Переменные — изменяемые идентификаторы, хранящие данные.
- Константы — неизменяемые значения, фиксированные на этапе компиляции.
- Основные типы C:
int,float,charиvoid. - У каждого типа определенный размер и диапазон, критически важные для приложений с ограниченной памятью.
Язык C
- Понимание сетевых протоколов: от физического уровня к продвинутому арбитражу
- Микропроцессоры: эволюция вычислений с запрограммированной памятью
- Мастерство C# переменных и примитивных типов данных: полное руководство
- Область видимости переменных в C#: класс, метод и блок
- Освоение переменных, литералов и констант в C++: подробное руководство
- Понимание типов данных C++: основы, модификаторы и лучшие практики
- Переменные, константы и литералы в C: полное руководство
- Типы данных в C: int, float, char и другие — полное руководство
- Классы хранения в C: область видимости, время жизни и производительность
- Примитивные типы данных в Java: полное руководство