Учимся программировать на языке C++

         

ПРЕВЫШЕНИЕ ДИАПАЗОНА ЗНАЧЕНИЙ ПЕРЕМЕННОЙ


Как вы уже знаете, тип переменной определяет набор значений, которые переменная может хранить. Например, переменная типа int может хранить значения в диапазоне от -32768 до 32767. Если вы присваиваете переменной значение, которое находится вне этого диапазона, возникает ошибка переполнения. Например, следующая программа OVERFLOW.CPP иллюстрирует, как превышение диапазона значений переменной приводит к ошибке. Как видите, программа присваивает значения, которые находятся вне диапазона для переменной каждого типа:

#include iostream.h

void main(void)

{

int positive = 40000;

long big_positive = 4000000000;

char little_positive = 210;

cout "сейчас positive содержит " positive endl;

cout "сейчас big_positive содержит " big_positive endl;

cout "сейчас little_poaitive содержит " little_positive endl;

}

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

сейчас positive содержит -25536

сейчас big_positive содержит -294967296

сейчас little_positive содержит Т

Как видите, программа присваивает переменным типа int, long и char значения, которые находятся вне диапазона хранения каждого типа, поэтому возникает ошибка переполнения. При работе с переменными вам необходимо помнить диапазон значений, которые может хранить переменная каждого типа. Ошибки переполнения плохо уловимы, и поэтому их трудно определить и исправить. Обратите внимание на значение, которое программа выводит для переменной little_positive. Поскольку это переменная типа char, выходной поток cout пытается вывести ее значение в символьном виде. В этом случае выведенное значение соответствует второй половине таблицы ASCII со значением 210.



Содержание раздела