Ключевые возможности языка C++ • Ввод и вывод • Арифметика указателей • Механизмы передачи параметров Ввод и вывод В C++ программах ввод и вывод осуществляется через потоки независимо от того куда или откуда передаются данные: Ввод и вывод Поток – это последовательность байтов идущая от отправителя к получателю. В каждой C++ программе автоматически создаются три стандартных потока: - Стандартный поток ввода (standard input stream) Стандартный поток вывода (standard output stream) Стандартный поток ошибок (standard error stream) Требуемая библиотека - <iostream> Ввод и вывод Синтаксис: /* использование стандартного потока для считывания с клавиатуры */ cin >> a; /* использование стандартного потока для вывода значения a на консоль */ cout << "Variable a: " << a; /*использование стандартного потока ошибок для вывода произвольной строки*/ cerr << "\nError stream output\n"; Результат выполнения: Ввод и вывод При необходимости программист может создавать дополнительные потоки например для работы с сетью или для записи файлов на жёсткий диск. В отличие от стандартных потоков, которые закрываются при завершении программы, дополнительные потоки желательно закрывать вручную. Указатели в C++ Указатель – это переменная, в которой содержится адрес другой переменной: 700 200 100 200 Указатель Переменная Адрес указателя Адрес переменной Значение указателя (содержит адрес переменной) Значение переменной Числа 100 и 200 приведены для примера. Реальные числовые значения адресов намного больше. Синтаксис: int a; Указатели в C++ //объявление переменной a a = 10; //установка значения переменной a int* ptr; //объявление указателя ptr ptr = &a; //установка указателя на переменную a //вывод значения переменной a cout << "Value of a: " << a << endl; //вывод адреса переменной a cout << "Adress of a: " << &a << endl; //вывод значения указателя ptr cout << "Value of ptr: " << ptr << endl; //вывод значения переменной на которую ссылается ptr cout << "Value of pointed variable: " << *ptr << endl; Арифметика указателей Изменяя значение указателя программист переставляет указатель с одной ячейки памяти на другую. Так указатели используют в массивах: 70 100 Указатель на массив: int* ptr = &A[0]; 28 120 31 116 4 112 18 108 60 104 100 10 Целочисленный массив: int A[6]; В данный момент указатель ptr установлен на нулевой элемент массива. Выполнение операции ptr++; увеличит значение ptr не на 1 а на 4 так как указатель ptr типа int. Механизмы передачи параметров Передача параметров в функции в C++ осуществляется двумя способами: - передачей по значению передачей по ссылке Механизмы передачи параметров Передача по значению 35 int a = 35; 400 Переменная: 550 35 function(a); Вызов функции Копия переменной a При передаче параметра по значению функция получает копию переменной а не саму переменную. После завершения работы функции копия удаляется и все изменения переменной (если проводились) теряются. Механизмы передачи параметров Передача по ссылке 35 int a = 35; 400 Переменная: 900 400 function(&a); Вызов функции Копия адреса переменной a При передаче по ссылке вызываемая функция получает адрес переменной а не копию её значения. Таким образом все изменения значения переменной сохранятся после завершения работы функции.