Переменные и типы данных в С++

Помечено: ,

В этой теме 0 ответов, 1 участник, последнее обновление  Васильев Владимир Сергеевич 7 мес. назад.

  • Автор
    Сообщения
  • #3653

    В этом уроке вы узнаете алфавит языка C++, а также какие типы данных может обрабатывает программа на нем. Возможно, это не самый увлекательный момент, но эти знания необходимы! Кроме того, начав изучать любой другой язык программирования, Вы с большей уверенностью пройдете аналогичную стадию обучения. Программа на языке C++ может содержать следующие символы:

    Переменная это область памяти заполненная данными, которые называются значением переменной.
    У каждой переменной должно быть своё уникальное имя на латинице с учетом регистра. Переменные делятся на целочисленные, дробные, символьные, логические(т.е «да» или «нет»). Примеры переменных из реальной жизни:

    1) Ваш возраст — целая положительная числовая переменная
    2) Температура — числовая переменная с плавающей точкой (дробная переменная)
    4) Ваше имя — несколько символьных переменных
    5) Вы не заметили отсутствие 3-его примера — логическая переменная ;)

    • прописные, строчные латинские буквы A, B, C…, x, y, z и знак подчеркивания;
    • арабские цифры от 0 до 9;
    • специальные знаки: { } , | , [ ] ( ) + — / % * . \ ‘ : ? < > = ! & # ~ ; ^
    • символы пробела, табуляции и перехода на новую строку.

    В тесте программы можно использовать комментарии. Если текст с двух символов «косая черта» // и заканчивается символом перехода на новую строку или заключен между символами /* и */, то компилятор его игнорирует.

    Данные в языке C++

    Для решения задачи в любой программе выполняется обработка каких-либо данных. Они могут быть различных типов: целые и вещественные числа, символы, строки, массивы. Данные в языке C++ принято описывать в начале функции. К основным типам данных языка относят:

    • char — символьный;
    • int — целый;
    • float — с плавающей точкой;
    • double — двойной точности;
    • bool — логический;

    Для формирования других типов данных используют основные и так называемые спецификаторы. В C++ определенны четыре спецификатора типов данных:

    • short — короткий;
    • long — длинный;
    • signed — знаковый;
    • unsigned — беззнаковый.

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

    const int var;

    В таблице подробно написано, в каких границах лежит переменная того или иного типа (сами типы и модификаторы рассмотрены ниже):

    Символьный тип

    Данные типа char в памяти компьютера всегда занимают 1 байт. Символьный тип может быть со знаком или без него. В величинах со знаком signed char можно хранить значение от -128 до 127. Соответственно значения переменных типа unsigned char могут находиться в диапазоне от 0 до 255. При работе с символьными данными нужно помнить, что если в выражении встречается одиночный символ, то он должен быть заключен в одинарные кавычки (‘a’).

    Целочисленный тип

    Переменная типа int в памяти компьютера может занимать либо 2, либо 4 байта. Это зависит разрядности процессора. По умолчанию все целые типы считаются знаковыми, то есть спецификатор signed можно не указывать. Спецификатор unsigned позволяет представлять только положительные числа.

    Вещественный тип

    Число с плавающей точкой представлено в форме mE +- p, где m — мантисса (целое или дробное число с десятичной точкой), p — порядок (целое число). Обычно величины типа float занимают 4 байта, а double 8 байт. Таблица диапазонов значений вещественного типа:

    Логический тип

    Переменная типа bool может принимать только два значения true (истина) или fasle (ложь). Любое значение, не равное нулю, интерпретируется как true. Значение false представлено в памяти как 0.

    Тип void

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

    Ниже приведена программа-анкета с примерами всех переменных:

    #include <iostream>
    using namespace std;
    int main() {
      char futbolka='L';
      unsigned short int vozrast=24, ves=84;
      float rost=1.79;
      bool rabotau=true;
    
      cout << "Menya zovut Petya. \n";
      cout << "Mne " << vozrast << " let. \n";
      cout << "Moy rost - " << rost << " metrov. \n";
      cout << "Moy ves - " << ves << " kg. \n";
      cout << "Razmer futbolki - " << futbolka << ". \n";
      cout << "Mesto raboty(1-est, 0-net) - " << rabotau << ".\n";
    
      system("pause");
    
      return 0;
    }

    Приведение типов в С++

    В C++ различают два вида преобразования типов данных: явное и неявное.

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

    #include <cstdlib>
    #include <iostream>
    using namespace std;
    
    int main() {
      int i=5; float f=10.12;
      cout<<i/f;
      system("pause");
      return 0;
    }

    Наивысший приоритет получает тот тип, при котором информация теряется менее всего. Не стоит злоупотреблять неявным преобразованием типов, так как могут возникнуть разного рода непредвиденные ситуации.

    Явное преобразование в отличие от неявного осуществляется программистом
    . Существует несколько способов такого преобразования:

    • Преобразование в стили C: (float) a
    • Преобразование в стили C++: float()

    Также приведения типов может осуществляться при помощи следующих операций:

    • static_cast<> ()
    • const_cast<> ()
    • reinterpret_cast<> ()
    • dynamic_cast<> ()

    static_cast — осуществляет преобразование связанных типов данных. Этот оператор приводит типы по обычным правилам, что может потребоваться в случае, когда компилятор не выполняет автоматическое преобразование. Синтаксис будет выглядеть так:

    Тип static_cast <Тип> (объект);

    С помощью static_cast нельзя убрать константность у переменной, но это по силам следующему оператору. const_cast — применяется только тогда, когда нужно снять константность у объекта. Синтаксис будет выглядеть следующим образом:

    Тип const_cast <Тип> (объект);

    reinterpret_cast — применяется для преобразования указателей разных типов, целых к указателю и наоборот. Если вы увидели новое слово «указатель» — не пугайтесь! это тоже тип данных, но работать с ним Мы будем не скоро. Синтаксис тут такой же как, у ранее рассмотренных операторах:

    Тип reinterpret_cast <Тип> (объект);

    dynamic_cast — используется для динамического преобразования типов, реализует приведение указателей или ссылок. Синтаксис:

    Тип dynamic_cast <Тип> (объект);

Для ответа в этой теме необходимо авторизоваться.