1.1b

advertisement
Ключевые возможности языка
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
При передаче по ссылке
вызываемая функция
получает адрес
переменной а не копию
её значения. Таким
образом все изменения
значения переменной
сохранятся после
завершения работы
функции.
Download