Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "stdafx.h"
- #include <iostream>
- using namespace std;
- int Fun1(int a)
- {
- return a*a;
- }
- int main()
- {
- setlocale(LC_ALL, "rus");
- // Типизированный указатель, который указывает на переменную определенного типа
- int a = 1;
- int b = 4;
- int * point3 = &a;
- int * point1 = &b;
- cout << "Вывод типизированного указателя = "<< *point1 << endl;
- // Нетипизированный указатель, который указывает на область памяти
- void * point2 = point1;
- cout << "Ячейка памяти при нетипизированном указатели = " << point2 << endl << endl;
- // Указатель на функцию
- int(*funpoint)(int a);
- funpoint = Fun1;
- cout << "Указатель на функцию = " << funpoint(20) << endl;
- cout << "Ячейка памяти функции = " << funpoint << endl << endl;
- // Разница между указателем и указуемым объектом
- if (point1 > point3) {
- cout << "true" << endl;
- }
- else {
- cout << "false" << endl;
- }
- if (*point1 > *point3) {
- cout << "true" << endl;
- }
- else {
- cout << "false" << endl;
- }
- cout << point1 << endl;
- cout << point3 << endl << endl;
- // Разница между указателем константой и указателем на константу
- int * const point4 = &a; // Указатель константа
- cout << "Вывод point 4 " << *point4 << endl;
- //point4 = point1;
- *point4 = b;
- cout << "Вывод point 4 после изменения " << *point4 << endl;
- const int * point5 = &a; //Указатель на константу
- cout << "Значения указателя point5 " << *point5 << endl;
- cout << "Адрес указателя point5 " << point5 << endl;
- //*point5 = &b;
- point5 = point1;
- cout << "Адрес указателя после изменения point5 " << point5 << endl << endl;
- // Многоуровневые указатели
- int * point6 = &a;
- int ** point7 = &point6;
- int *** point8 = &point7;
- cout << "a = " << a << endl;
- cout << "*point6 = " << *point6 << endl;
- cout << "**point7 = " << **point7 << endl;
- cout << " ***point8 = " << ***point8 << endl << endl;
- //Разница между указателем и ссылкой
- int c = 10;
- int d = 15;
- int * point9 = &c;
- cout << "Адрес указателя " << point9 << endl;
- point9 +=2;
- cout << "Адрес указателя новый " << point9 << endl << endl;
- // Объявление ссылки
- int &ref1 = c;
- cout << "Вывод адреса ссылки " << &ref1 << endl;
- ref1 += 2;
- cout << "Вывод адреса ссылки " << &ref1 << endl;
- cout << "Вывод нового значения ссылки " << ref1 << endl;
- ref1 = 100; // Т.к. ссылка и значение переменной имеют одинаковую область памяти, то значение переприсваивается
- cout << "Вывод нового значения ссылки " << ref1 << endl;
- int * point10; // Указатель не требует инициализации
- //int &ref2; // Ссылка обязательно должна быть инициализирована
- system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement