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

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

Жанры

Программирование. Принципы и практика использования C++ Исправленное издание
Шрифт:

string first_name; // first_name — это переменная типа string

Эта строка выделяет участок памяти для хранения строки символов и присваивает ему имя

first_name
.

Инструкция, вводящая новое имя в программе и выделяющая память для переменной, называется определением.

Следующая строка считывает символы с устройства ввода (клавиатуры)

в переменную:

cin >> first_name; // считываем символы в переменную first_name

Имя

cin
относится к стандартному потоку ввода (читается как “си-ин” и является аббревиатурой от haracter put), определенному в стандартной библиотеке. Второй операнд оператора
>>
(“ввести”) определяет участок памяти, в который производится ввод. Итак, если мы введем некое имя, например
Nicolas
, а затем выполним переход на новую строку, то строка “
Nicolas
” станет значением переменной
first_name
.

Переход на новую строку необходим для того, чтобы привлечь внимание компьютера. Пока переход на новую строку не будет выполнен (не будет нажата клавиша <Enter>), компьютер просто накапливает символы. Эта “отсрочка” дает нам шанс передумать, стереть некоторые символы или заменить их другими перед тем, как нажать клавишу <Enter>. Символ перехода на новую строку не является частью строки, хранящейся в памяти.

Введя входную строку в переменную

first_name
, можем использовать ее в дальнейшем.

cout << "Hello, " << first_name << "!\n";

Эта строка выводит на экран слово Hello за которым следует имя Nicolas (значение переменной

first_name
) с восклицательным знаком (
!
) и символом перехода на новую строку экрана (
'\n'
).

Hello, Nicolas!

Если бы мы любили повторяться и набирать лишний текст, то разбили бы эту строку на несколько инструкций.

cout << "Hello, ";

cout << first_name;

cout << "!\n";

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

Обратите внимание на то, что мы заключили выражение

Hello
в двойные кавычки, а не указали имя
first_name
. Двойные кавычки используются для работы с литеральными строками. Если двойные кавычки не указаны, то мы ссылаемся на нечто, имеющее имя.

cout << "Имя " << " — " << first_name;

Здесь строка "

Имя
" представляет собой набор из трех символов, а имя
first_name
позволяет вывести на экран значение переменной
first_name
, в данном случае
Nicolas
. Итак, результат выглядит следующим образом:

Имя — Nicolas

3.2.

Переменные

В принципе, не имея возможности хранить данные в памяти так, как показано в предыдущем примере, с помощью компьютера невозможно сделать ничего интересного. Место, в котором хранятся данные, называют объектами. Для доступа к объекту необходимо знать его имя. Именованный объект называется переменной и имеет конкретный тип (например,
int
или
string
), определяющий, какую информацию можно записать в объект (например, в переменную типа
int
можно записать число
123
, а в объект типа
string
— строку символов "
Hello, World!\n
", а также какие операции к нему можно применять (например, переменные типа
int
можно перемножать с помощью оператора
*
, а объекты типа
string
можно сравнивать с помощью оператора
<=
). Данные, записанные в переменные, называют значениями. Инструкция, определяющая переменную, называется (вполне естественно) определением, причем в определении можно (и обычно желательно) задавать начальное значение переменной. Рассмотрим следующий пример:

string name = "Annemarie";

int number_of_steps = 39;

Эти переменные можно изобразить следующим образом:

Мы не можем записывать в переменную значение неприемлемого типа.

string name2 = 39; // ошибка: 39 — это не строка

int number_of_steps = "Annemarie"; // ошибка: "Annemarie"

// — не целое число

Компилятор запоминает тип каждой переменной и позволяет вам использовать переменную лишь так, как предусмотрено ее типом, указанным в определении.

В языке С++ предусмотрен довольно широкий выбор типов (см. раздел A.8). Однако можно создавать прекрасные программы, обходясь лишь пятью из них.

int number_of_steps = 39; // int — для целых чисел

double flying_time = 3.5; // double — для чисел с плавающей точкой

char decimal_point = '.'; // char — для символов

string name = "Annemarie"; // string — для строк

bool tap_on = true; // bool — для логических переменных

Ключевое слово

double
используется по историческим причинам: оно является сокращением от выражения “число с плавающей точкой и двойной точностью” (“double precision floating point.”) Числом с плавающей точкой в компьютерных науках называют действительное число.

Обратите внимание на то, что каждый из этих типов имеет свой характерный способ записи.

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

Дракон - не подарок

Суббота Светлана
2. Королевская академия Драко
Фантастика:
фэнтези
6.74
рейтинг книги
Дракон - не подарок

Бастард Императора. Том 8

Орлов Андрей Юрьевич
8. Бастард Императора
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Бастард Императора. Том 8

Чужая дочь

Зика Натаэль
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Чужая дочь

Эра Мангуста. Том 2

Третьяков Андрей
2. Рос: Мангуст
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Эра Мангуста. Том 2

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

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

Один на миллион. Трилогия

Земляной Андрей Борисович
Один на миллион
Фантастика:
боевая фантастика
8.95
рейтинг книги
Один на миллион. Трилогия

Помещицы из будущего

Порохня Анна
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Помещицы из будущего

Шлейф сандала

Лерн Анна
Фантастика:
фэнтези
6.00
рейтинг книги
Шлейф сандала

Черный маг императора 2

Герда Александр
2. Черный маг императора
Фантастика:
юмористическая фантастика
попаданцы
аниме
6.00
рейтинг книги
Черный маг императора 2

Император

Рави Ивар
7. Прометей
Фантастика:
фэнтези
7.11
рейтинг книги
Император

Бандит 2

Щепетнов Евгений Владимирович
2. Петр Синельников
Фантастика:
боевая фантастика
5.73
рейтинг книги
Бандит 2

На границе империй. Том 9. Часть 2

INDIGO
15. Фортуна дама переменчивая
Фантастика:
космическая фантастика
попаданцы
5.00
рейтинг книги
На границе империй. Том 9. Часть 2

Князь Серединного мира

Земляной Андрей Борисович
4. Страж
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Князь Серединного мира

Чайлдфри

Тоцка Тала
Любовные романы:
современные любовные романы
6.51
рейтинг книги
Чайлдфри