Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛР4-С++-13 марта-2012 - копия.doc
Скачиваний:
11
Добавлен:
15.09.2019
Размер:
2.55 Mб
Скачать

1.10. Преобразования типов

В С++ существует явное и неявное преобразование типов.

В общем случае неявное преобразование типов сводится к участию в выражении переменных разного типа (так называемая арифметика смешанных типов). Если подобная операция осуще­ствляется над переменными базовых типов (представленных в табл. 4.5), она может повлечь за собой ошибки: в случае, напри­мер, если результат занимает в памяти больше места, чем отведе­но под принимающую переменную, неизбежна потеря значащих разрядов.

Для явного преобразования переменной одного типа в другой перед именем переменной в скобках указывается присваиваемый ей новый тип:

Пример 4.18.

#include <iostream.h>

int main ()

{

int Integer = 54;

float Floating = 15.854;

Integer = (int) Floating; // явное преобразование

cout << "New integer: ";

cout << Integer << ' \n';

return 0

}

В приведенном листинге после объявления соответствую­щих переменных (целочисленной integer и вещественной Floating) производится явное преобразование типа с плаваю­щей запятой (Floating) к целочисленному (Integer). Пример неявного преобразования:

Пример 4.19.

#include <iostream.h>

int main ()

{

int Integer = 0;

float Floating = 15.854;

Integer = Floating; // неявное преобразование

cout << "New integer: ";

cout << Integer << '\n';

return 0;

}

В отличие от предыдущего варианта программы, в данном случае после объявления и инициализации переменных осущест­вляется присваивание значения переменной с плавающей запятой Floating целочисленной переменной Integer.

Результат работы обеих программ выглядит следующим образом:

New integer: 15

То есть произошло отсечение дробной части переменной Floating.

1.11. Операции (операторы) инкремента и декремента

1.11.1. Увеличение значения переменной на 1

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

count = count + 1;

В данном случае программа сначала выбирает значение count, а затем добавляет к нему единицу. Далее программа записывает результат сложения обратно в переменную count. Программа в примере 4.20 использует оператор присваивания для увеличения переменной count (которая первоначально содержит значение 1000) на единицу (присваивая переменной результат 1001):

Пример 4.20

#include <iostream.h>

void main(void)

{     int count = 1000;     cout << "начальное значение count равно" << count << endl;     count = count + 1;     cout << "конечное значение count равно" << count << endl;  }

Когда вы откомпилируете и запустите эту программу, на вашем экране появится следующий вывод:

начальное значение count равно 1000

конечное значение count равно 1001

Так как увеличение значения переменной представляет собой обычную операцию в программах, в C++ есть операция увеличения — двойной знак плюс (++). Операция увеличения обеспечивает быстрый способ прибавления единицы к значению переменной. Следующие операторы, например, увеличивают значение переменной count на 1:

count = count + 1; count++;

Программа в примере 4.21 использует операцию увеличения для наращивания значения переменной count на 1:

Пример 4.21

#include <iostream.h>

void main(void)

{     int count = 1000;     cout << "начальное значение count равно " << count << endl;     count++;     cout << "конечное значение count равно " << count << endl;  }

Эта программа работает так же, как программа примера 4.8, которая использовала оператор присваивания для увеличения значения переменной. Когда C++ встречает операцию увеличения, он сначала выбирает значение переменной, добавляет к этому значению единицу, а затем записывает результат обратно в переменную.