Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Либерти Джесс. Освой самостоятельно С++ за 21 день. - royallib.ru.rtf
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
2.55 Mб
Скачать

Резервирование памяти

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

Каждая ячейка имеет размер в один байт. Если для переменной указанного типа требуется четыре байта, то для нее будет выделено четыре ячейки, т.е. именно по типу переменной (например, int) компилятор судит о том, какой объем памяти (сколько ячеек) нужно зарезервировать для этой переменной.

Поскольку для представления значений в компьютерах используются биты и байты и память измеряется тоже в байтах, важно хорошо разбираться в этих понятиях. Более полно эта тема рассматривается в приложении В.

Размер целых

Для переменных одних и тех же типов на компьютерах разных марок может выделяться разный объем памяти, в то же время в пределах одного компьютера две переменные одинакового типа всегда будут иметь постоянный размер.

Переменная типа char (используемая для хранения символов) чаше всего имеет размер в один байт.

Примечание: Не прекращаются споры о произношении имени типа char. Одни про­износят его как "кар", другие — как "чар". Поскольку это сокращение слова character, то первый вариант правильнее, но вы вольны произ­носить его так, как вам удобно.

В большинстве компьютеров для типа short int (короткий целый) обычно отво­дится два байта, для типа long int (длинный целый) — четыре байта, а для типа int (без ключевого слова short или long) может быть отведено два или четыре байта. Раз­мер целого значения определяется системой компьютера (16- или 32-разрядная) и ис­пользуемым компилятором. На современных 32-разрядных компьютерах, использую­щих последние версии компиляторов (например, Visual C++ 4 или более поздние), целые переменные имеют размер в четыре байта. Эта книга ориентирована на ис­пользование 4-байтовых целых, хотя у вас может быть другой вариант. Программа, представленная в листинге 3.1, поможет определить точный размер этих типов на ва­шем компьютере.

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

Листинг 3.1. Определение размеров переменным разных типов на вашем компьютре

1: #include <iostream.h>

2:

3: int main()

4: {

5:    cout << "The size of an int is:\t\t" << sizeof(int) << " bytes.\n";

6:    cout << " The size of a short int is:\t\t" << sizeof(short) << " bytes.\n";

7;    cout << " The size of a long int is:\t\t" << sizeof(long) << " bytes.\n";

8:    cout << " The size of a char is:\t\t" << sizeof(char) << " bytes.\n";

9:    cout << " The size of a float is:\t\t" << sizeof(float) << " bytes.\n";

10:   cout << " The size of a double is:\t\t" << sizeof(double) << " bytes.\n";

11:   cout << " The size of a bool is:\t\t" << sizeof(bool) << " bytes.\n";

12:

13:   return 0:

14: };

Результат:

The size of an int is: 4 bytes.

The size of a short int is: 2 bytes.

The size of a long int is: 4 bytes.

The size of a char is: 1 bytes.

The size of a float is: 4 bytes.

The size of a double is: 4 bytes.

The size of a bool is: 1 bytes.

Примечание: На вашем компьютере размеры переменных разных типов могут быть другими.

Большинство операторов листинга З.1 вам знакомо. Возможно, новым для вас будет использование функции sizeof() в строках 5-10. Результат выполнения функции sizeof() зависит от компилятора и компьютера, а ее назначение состоит в определении размеров объектов, переданных в качестве параметра. Например, в строке 5 функции sizeof() передается ключевое слово int. Функция возвращает размер в байтах переменной типа int на данном компьютере. В нашем примере для типов int и long int возвращается значение четыре байта.