Advertisement
Guest User

Untitled

a guest
Nov 18th, 2019
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.51 KB | None | 0 0
  1. #include "stdafx.h"
  2. #include <iostream>
  3. using namespace std;
  4.  
  5.  
  6. int Fun1(int a)
  7. {
  8.     return a*a;
  9. }
  10.  
  11.  
  12. int main()
  13. {
  14.     setlocale(LC_ALL, "rus");
  15.  
  16.    
  17.    
  18.     // Типизированный указатель, который указывает на переменную определенного типа
  19.  
  20.    
  21.    
  22.     int a = 1;
  23.     int b = 4;
  24.  
  25.     int * point3 = &a;
  26.     int * point1 = &b;
  27.  
  28.     cout << "Вывод типизированного указателя = "<< *point1 << endl;
  29.  
  30.     // Нетипизированный указатель, который указывает на область памяти
  31.  
  32.     void * point2 = point1;
  33.     cout << "Ячейка памяти при нетипизированном указатели = " << point2 << endl << endl;
  34.  
  35.    
  36.    
  37.    
  38.     // Указатель на функцию
  39.  
  40.  
  41.     int(*funpoint)(int a);
  42.    
  43.     funpoint = Fun1;
  44.  
  45.     cout << "Указатель на функцию = " << funpoint(20) << endl;
  46.     cout << "Ячейка памяти функции = " << funpoint << endl << endl;
  47.  
  48.    
  49.    
  50.     // Разница между указателем и указуемым объектом
  51.  
  52.    
  53.     if (point1 > point3) {
  54.         cout << "true" << endl;
  55.     }
  56.     else {
  57.         cout << "false" << endl;
  58.     }
  59.  
  60.     if (*point1 > *point3) {
  61.         cout << "true" << endl;
  62.     }
  63.     else {
  64.         cout << "false" << endl;
  65.     }
  66.  
  67.     cout << point1 << endl;
  68.     cout << point3 << endl << endl;
  69.  
  70.    
  71.    
  72.    
  73.     // Разница между указателем константой и указателем на константу
  74.    
  75.    
  76.    
  77.    
  78.     int * const point4 = &a; // Указатель константа
  79.  
  80.     cout << "Вывод point 4 " << *point4 << endl;
  81.  
  82.     //point4 = point1;
  83.     *point4 = b;
  84.  
  85.     cout << "Вывод point 4 после изменения " << *point4 << endl;
  86.  
  87.  
  88.     const int * point5 = &a; //Указатель на константу
  89.  
  90.     cout << "Значения указателя point5 " << *point5 << endl;
  91.     cout << "Адрес указателя point5 " << point5 << endl;
  92.  
  93.  
  94.     //*point5 = &b;
  95.  
  96.     point5 = point1;
  97.  
  98.     cout << "Адрес указателя после изменения point5 " << point5 << endl << endl;
  99.  
  100.  
  101.  
  102.     // Многоуровневые указатели
  103.    
  104.     int * point6 = &a;
  105.     int ** point7 = &point6;
  106.     int *** point8 = &point7;
  107.  
  108.     cout << "a = " << a << endl;
  109.     cout << "*point6 = " << *point6 << endl;
  110.     cout << "**point7 = " << **point7 << endl;
  111.     cout << " ***point8 = " << ***point8 << endl << endl;
  112.  
  113.  
  114.    
  115.    
  116.     //Разница между указателем и ссылкой
  117.  
  118.     int c = 10;
  119.     int d = 15;
  120.    
  121.     int * point9 = &c;
  122.  
  123.     cout << "Адрес указателя " << point9 << endl;
  124.  
  125.     point9 +=2;
  126.  
  127.     cout << "Адрес указателя новый " << point9 << endl << endl;
  128.  
  129.  
  130.     // Объявление ссылки
  131.  
  132.     int &ref1 = c;
  133.    
  134.     cout << "Вывод адреса ссылки " << &ref1 << endl;
  135.  
  136.     ref1 += 2;
  137.  
  138.     cout << "Вывод адреса ссылки " << &ref1 << endl;
  139.     cout << "Вывод нового значения ссылки " << ref1 << endl;
  140.  
  141.     ref1 = 100; // Т.к. ссылка и значение переменной имеют одинаковую область памяти, то значение переприсваивается
  142.     cout << "Вывод нового значения ссылки " << ref1 << endl;
  143.  
  144.     int * point10; // Указатель не требует инициализации
  145.     //int &ref2; // Ссылка обязательно должна быть инициализирована
  146.  
  147.     system("pause");
  148.     return 0;
  149. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement