Рейтинговые книги
Читем онлайн Освой самостоятельно С++ за 21 день. - Джесс Либерти

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 5 6 7 8 9 10 11 12 13 ... 170

2. В чем состоит особенность функции main()?

3. Какие два типа комментариев вы знаете и чем они отличаются друг от друга?

4. Могут ли комментарии быть вложенными?

5. Могут ли комментарии занимать несколько строк?

Упражнения

1. Напишите программу, которая выводит на экран сообщение I love C++.

2. Напишите самую маленькую программу, которую можно скомпилировать, скомпоновать и выполнить.

3. Жучки: введите эту программу и скомпилируйте ее. Почему она дает сбой? Как ее можно исправить?

1: #include <iostream.h>

2: int main()

3: {

4:    cout << Is there а bug here?";

5:    return 0;

6: }

4. Исправьте ошибку в упражнении 3, после чего перекомпилируйте ее, скомпонуйте и запустите на выполнение.

День 3-й. Переменные и константы

Программы должны обладать способностью хранить используемые данные. Для представления и манипуляции этими данными используются переменные и константы. Сегодня вы узнаете:

• Как объявлять и определять переменные и константы

• Как присваивать значения переменным и использовать их в программе

• Как выводить значения переменных на экран

Что такое переменная

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

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

Имя переменной (например, MyVariable) можно представить себе как надпись на ячейке памяти, по которой, не зная настоящего адреса памяти, можно ее найти. На рис. 3.1 схематически представлена эта идея. Согласно этому рисунку, переменная MyVariable начинается с ячейки с адресом 103. В зависимости от своего размера, пере­менная MyVariable может занимать одну или несколько ячеек памяти.

Примечание:В ОЗУ обеспечивается произвольный доступ к ячейкам памяти. Запус­каемая программа загружается в ОЗУ с дискового файла. Все пере­менные также хранятся в ОЗУ. Когда программисты говорят о памяти, они обычно имеют в виду ОЗУ.

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

При определении переменной в языке 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:tt" << sizeof(int) << " bytes.n";

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

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

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

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

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

11:   cout << " The size of a bool is:tt" << 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 возвращается значение четыре байта.

Знаковые и беззнаковые типы

Целочисленные переменные, используемые в программах, могут быть знаковыми и беззнаковыми. Иногда бывает полезно установить для переменной использование только положительных чисел. Целочисленные типы (short и long) без ключевого слова unsigned считаются знаковыми. Знаковые целые могут быть отрицательными или положительными. Беззнаковые числа всегда положительные.

Поскольку как для знаковых, так и для беззнаковых целых отводится одно и то же число байтов, то максимальное число, которое можно хранить в беззнаковом целом, вдвое превышает максимальное положительное число, которое можно хранить в знаковом целом. С помощью типа unsigned short int можно обрабатывать числа в диапазоне 0—65 535. Половина чисел, представляемых знаковым коротким целым типом, отрицательные, следовательно, с помощью этого типа можно представить числа только в диапазоне - 32 768—32 767. Если в этом вопросе вам что-то неясно, прочитайте приложение В.

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

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

Вещественные переменные содержат значения, которые могут выражаться в виде дробей. Символьные переменные занимают один байт и используются для хранения 256 символов и знаков ASCII, а также расширенных наборов символов ASCII.

Под символами ASCII понимают стандартный набор знаков, используемых в компьютерах. ASCII — это American Standard Code for Information Interchange (Американский стандартный код для обмена информацией). Почти все компьютерные операционные системы поддерживают код ASCII, хотя многие также поддерживают и другие национальные наборы символов.

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

Таблица 3.1. Типы переменных.

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

1 ... 5 6 7 8 9 10 11 12 13 ... 170
На этой странице вы можете бесплатно читать книгу Освой самостоятельно С++ за 21 день. - Джесс Либерти бесплатно.

Оставить комментарий