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

Переменные и типы данных в C++: подробное руководство по int, double, char, string, bool

Переменные в C++

В C++ переменная — это именованная область памяти, позволяющая программисту хранить и обрабатывать данные. У каждой переменной есть явный тип, определяющий её размер в памяти, диапазон допустимых значений и допустимые операции.

В этом руководстве рассматриваются:

Основные типы переменных

int — целые числа без дробной части (например, 120, -90).

double — числа с плавающей точкой двойной точности (например, 11.22, 2.345).

char — одиночные символы в одинарных кавычках (например, 'a', 'm', 'F', '}', '7').

float — числа с плавающей точкой одинарной точности (например, 1.3f, 2.6f).

string — последовательность символов в двойных кавычках (например, "How are you?"). Требует #include <string>.

bool — логический тип, принимает значения true или false.

Правила объявления переменных

Типы данных переменных в C++

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

Арифметические типы делятся на две категории:

  1. Типы с плавающей точкой: float (≈32 бита), double (≈64 бита), long double (≈80/96/128 бит в зависимости от реализации).
  2. Целочисленные типы: целые числа, символы и bool. Могут быть знаковыми (signed) или беззнаковыми (unsigned).

Знаковые типы представляют отрицательные, нулевые и положительные значения. Например, 8-битный знаковый char диапазона от –128 до 127.

Беззнаковые типы хранят только неотрицательные значения. 8-битный беззнаковый char — от 0 до 255.

Переменные и типы данных в C++: подробное руководство по int, double, char, string, bool

Имена переменных (идентификаторы)

Идентификаторы могут содержать буквы, цифры и подчёркивания. Длина не ограничена, учитывается регистр:

int guru99, gurU99, GuRu99, GURU99;

Ключевые слова не могут использоваться как идентификаторы. Чёткие соглашения об именовании повышают читаемость: переменные — в нижнем регистре, составные имена — camelCase или snake_case, классы — с заглавной буквы (PascalCase).

Переменные и типы данных в C++: подробное руководство по int, double, char, string, bool

Примеры объявления и определения

int a = 5;
int b;
char c = 'A';
int a, b;
a = b = 1000;
int a(5);      // инициализация в стиле конструктора
int b{5};      // унифицированная инициализация (C++11)

Квалификатор const

Используйте const, когда значение не должно меняться после инициализации:

const int bufSize = 512; // размер входного буфера

Переменная const обязана быть инициализирована; иначе компилятор выдаст ошибку.

const int i = get_size(); // OK: инициализация во время выполнения
const int j = 42;         // OK: константа времени компиляции
const int k;              // ошибка: неинициализированная const
const int i = 42;
const int ci = i;         // OK: копия i

Область видимости переменных

Область видимости определяет, где имя доступно. Переменные видны от точки объявления до конца окружающего блока.

#include <iostream>
int main() {
    int sum = 0;
    for (int val = 1; val <= 10; ++val)
        sum += val;
    std::cout << "Sum of 1 to 10 inclusive is " << sum << std::endl;
    return 0;
}

Вложенные области видимости

#include <iostream>
using namespace std;
int reused = 42; // глобальная область
int main() {
    int unique = 0; // блочная область
    cout << reused << " " << unique << endl; // 42 0
    int reused = 0; // локальная переменная скрывает глобальную
    cout << reused << " " << unique << endl; // 0 0
    cout << ::reused << " " << unique << endl; // 42 0 (доступ к глобальной через ::)
    return 0;
}

Преобразование типов переменных

C++ выполняет неявные преобразования при определённых условиях. Основные правила:

При смешивании знаковых и беззнаковых целых отрицательные знаковые значения могут неожиданно превратиться в большие беззнаковые.

Регистровые переменные

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

register int i;

Комментарии

Комментарии игнорируются компилятором и служат для документирования кода:

/* Это комментарий */
/* C++ комментарии могут
   занимать несколько строк */

Escape-последовательности

Escape-последовательности представляют непечатные или специальные символы:

EscapeОписание
\nНовая строка
\tГоризонтальная табуляция
\\Обратный слэш
\bBackspace
\rВозврат каретки
\vВертикальная табуляция
\fПеревод страницы
\aЗвонок (bell)
\"Двойная кавычка
\'Одинарная кавычка
\?Вопросительный знак
cout << '\n';        // новая строка
cout << "\tguru99!\n"; // таб + текст + новая строка

Обобщённые последовательности используют шестнадцатеричные или восьмеричные значения:

\7   // bell (восьмеричное)
\12  // новая строка (восьмеричное)
\40  // пробел (восьмеричное)
\x4D // 'M' (шестнадцатеричное)

Резюме

Язык C

  1. Мастерство C# переменных и примитивных типов данных: полное руководство
  2. Освоение переменных, литералов и констант в C++: подробное руководство
  3. Понимание типов данных C++: основы, модификаторы и лучшие практики
  4. Переменные, константы и литералы в C: полное руководство
  5. Типы данных в C: int, float, char и другие — полное руководство
  6. Четыре проверенных паттерна пользовательских функций в C
  7. Классы хранения в C: область видимости, время жизни и производительность
  8. Операторы в C++: типы, примеры и практические программы
  9. Типы переменных в Java: локальные, экземпляра и статические
  10. Переменные в C: объявление, определение, инициализация, область видимости и классы хранения