Содержание
- 2. Взаимоотношение имени переменной и её адреса в ОП Текст программы int i = 10; short int
- 3. Указатели Когда компилятор обрабатывает оператор определения переменной, например int i = 10; он выделяет память в
- 4. Описание указателя Указатель – это объект, содержащий адрес начала области памяти, где хранится значение переменной. Так,
- 5. Размер указателя зависит от модели памяти, можно определять указатель на указатель и т.д. Указатель может быть
- 6. С указателями можно выполнять следующие операции: - разыменование (*) – получение значения величины, адрес которой хранится
- 7. Краткие итоги: Для экономии памяти и времени, затрачиваемого на обращение к данным, в программах используют
- 8. Ссылки Ссылки представляют собой синоним имени, указанного при инициализации ссылки. Ссылку можно рассматривать как указатель, который
- 9. Правила работы со ссылками Переменная-ссылка должна явно инициализироваться при ее описании, кроме некоторых случаев, когда она
- 10. Пример на применение операции разыменования Это означает, что по адресу переменной в памяти мы переходим к
- 11. Операторы указателей В предыдущем примере для работы с указателями предусмотрены два специальных оператора: & и ?
- 12. ПРИМЕР: программа выполняет последовательность описанных выше операций. #include using namespace std; int main( ) { int
- 13. Возврат нескольких значений из функции Для того чтобы и в вызывающей программе и в функции работать
- 14. #include using namespace std; void box(int length, int width, int height, int &vol, int &ar); int
- 15. Резюме: При передаче фактических аргументов по значению в вызываемой функции создаются копии передаваемых значений. Поэтому любые
- 16. Пример передачи параметров по значению #include #include using namespace std; int sqr (int x); int main(void)
- 17. Пример передачи параметров по ссылке #include #include using namespace std; int sqr (int & x); int
- 18. Примеры применения функций Даны два вектора с координатами {1,-2,0}, {2, 7,-4}. Найти модуль каждого вектора, сумму
- 19. mod_1= sqrt(float(a*a+b*b+c*c));// модуль первого вектора mod_2= sqrt(float(x*x+y*y+z*z));// модуль второго вектора cout cout u=a+x; v=b+y;w= c+z;// определение
- 20. Решение задачи в рамках структурного подхода #include #include using namespace std; void inp_vect(int & a, int
- 21. int main() { int a,b,c, x,y,z, u,v,w; //переменные для координат3-х векторов float mod_1, mod_2, scal_pr; //
- 22. scal_pr=(a*x+b*y+c*z)/(modul(a,b,c)*modul(x,y,z)); // обращение к функции внутри вычисляющего оператора cout system("pause"); return 0; }
- 24. Скачать презентацию