Чтение онлайн

на главную - закладки

Жанры

Освой самостоятельно С++ за 21 день.

Либерти Джесс

Шрифт:

Вопросы и ответы

Какую роль выполняет директива #include?

Это команда для препроцессора, который автоматически запускается при вызове компилятора. Данная директива служит для введения содержимого файла, имя которого стоит после директивы, в исходный текст программы.

В чем разница между символами комментариев // и /*?

Комментарии, выделенные двойным слешем (//), распространяются до конца строки. Комментарии, начинающиеся слешем со звездочкой (/*), продолжаются до тех пор, пока не встретится символ завершения комментария (*/). Помните, что даже конец функции не завершит действие комментария, начавшегося с пары символов (/*).

Если вы забудете установить завершение комментария (*/), то получите сообщение об ошибке во время компиляции.

В чем разница между хорошими и плохими комментариями?

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

Коллоквиум

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

Контрольные вопросы

1. В чем разница между компилятором и препроцессором?

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++ переменные используются для хранения информации. Переменную можно представить себе как ячейку в памяти компьютера, в которой может храниться некоторое значение, доступное для использования в программе.

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

< image l:href="#"/>

Имя переменной (например, 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:\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";

Поделиться:
Популярные книги

Гридень 2. Поиск пути

Гуров Валерий Александрович
2. Гридень
Детективы:
исторические детективы
5.00
рейтинг книги
Гридень 2. Поиск пути

Попытка возврата. Тетралогия

Конюшевский Владислав Николаевич
Попытка возврата
Фантастика:
альтернативная история
9.26
рейтинг книги
Попытка возврата. Тетралогия

Газлайтер. Том 10

Володин Григорий
10. История Телепата
Фантастика:
боевая фантастика
5.00
рейтинг книги
Газлайтер. Том 10

Я – Стрела. Трилогия

Суббота Светлана
Я - Стрела
Любовные романы:
любовно-фантастические романы
эро литература
6.82
рейтинг книги
Я – Стрела. Трилогия

Инженер Петра Великого

Гросов Виктор
1. Инженер Петра Великого
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Инженер Петра Великого

Колонист "Вано"

Сухов Лео
1. Антикризисный Актив
Фантастика:
героическая фантастика
попаданцы
7.17
рейтинг книги
Колонист Вано

Блуждающие огни 4

Панченко Андрей Алексеевич
4. Блуждающие огни
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Блуждающие огни 4

Возвышение Меркурия. Книга 8

Кронос Александр
8. Меркурий
Фантастика:
героическая фантастика
попаданцы
аниме
5.00
рейтинг книги
Возвышение Меркурия. Книга 8

Тринадцатый II

NikL
2. Видящий смерть
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Тринадцатый II

Девочка-яд

Коэн Даша
2. Молодые, горячие, влюбленные
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Девочка-яд

Идеальный мир для Лекаря 28

Сапфир Олег
28. Лекарь
Фантастика:
юмористическое фэнтези
аниме
фэнтези
5.00
рейтинг книги
Идеальный мир для Лекаря 28

Имя нам Легион. Том 9

Дорничев Дмитрий
9. Меж двух миров
Фантастика:
боевая фантастика
рпг
аниме
5.00
рейтинг книги
Имя нам Легион. Том 9

Ермак. Регент

Валериев Игорь
10. Ермак
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Ермак. Регент

Тигр под елку

Зайцева Мария
4. Наша
Любовные романы:
короткие любовные романы
5.00
рейтинг книги
Тигр под елку