Advertisement
Guest User

Untitled

a guest
Dec 11th, 2018
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.43 KB | None | 0 0
  1.  
  2. #include "pch.h"
  3. #include <iostream>
  4. using namespace std;
  5.  
  6. class TMyCl
  7. {
  8. public:
  9.     int x;
  10.     float a, b, c;
  11.     double m, n;
  12. };
  13.  
  14. void main()
  15. {
  16.     setlocale(LC_ALL, "Russian");
  17.     double * pd, *ppd; pd = new double;
  18.     float * pf, *ppf; pf = new float;
  19.     int pi, *ppi; pi = new int;
  20.     TMyCl * po; po = new TMyCl;
  21.     cout << "ЭТАП A. Определение количества памяти, занимаемой указателями на переменные разного типа" << endl;
  22.     cout << "Результат операции sizeof - px, *px, *px, type*, type " << endl;
  23.     cout << "double: " << sizeof(pd) << " " << sizeof(*pd) << " " << sizeof(double*) << " " << sizeof(double) << endl;
  24.     cout << "float: " << sizeof(pf) << " " << sizeof(*pf) << " " << sizeof(float*) << " " << sizeof(float) << endl;
  25.     cout << "int: " << sizeof(pi) << " " << sizeof(*pi) << " " << sizeof(int*) << " " << sizeof(int) << endl;
  26.     cout << "TMyCl: " << sizeof(po) << " " << sizeof(*po) << " " << sizeof(TMyCl*) << " " << sizeof(TMyCl) << endl;
  27.     cout << "-------------------------------------------------------------" << endl;
  28.     cout << "ЭТАП B. Операция разименовывания указателя" << endl
  29.          << "(определение значения, хранящегося в ОП по заданному адресу)" << endl;
  30.     *pd = 0.00001; *pf = 7.6; *pi = 10;
  31.     cout << "Указатель: адрес в ОП и значение - px, *px" << endl;
  32.     cout << "double: " << pd << " " << *pd << endl;
  33.     cout << "float: " << pf << " " << *pf << endl;
  34.     cout << "int: " << pi << " " << *pi << endl;
  35.     cout << "------------------------------------------------------------" << endl;
  36.     cout << "ЭТАП C. Присваивание значения ранее инициализированного указателя другому указателю" << endl;
  37.     ppd = pd; ppf = pf; ppi = pi;
  38.     cout << "Указатель: адрес в ОП и значение - ppx, *ppx" << endl;
  39.     cout << "double: " << ppd << " " << *ppd << endl;
  40.     cout << "float: " << ppf << " " << *ppf << endl;
  41.     cout << "int: " << ppi << " " << *ppi << endl;
  42.     cout << "------------------------------------------------------------" << endl;
  43.     cout << "ЭТАП D. Освобождение памяти и обнуление указателей" << endl;
  44.     delete pd, pf, pi;
  45.     pd = NULL; pf = NULL; pi = NULL; ppd = NULL; ppf = NULL; ppi = NULL;
  46.     cout << "Освобождение памяти - px, ppx" << endl;
  47.     cout << "double: " << pd << " " << ppd << endl;
  48.     cout << "float: " << pf << " " << ppf << endl;
  49.     cout << "int: " << pi << " " << ppi << endl;
  50.     cout << "------------------------------------------------------------" << endl;
  51.     cout << "Нажмите любую клавишу для продолжения" << endl; system("pause");
  52.     cout << "------------------------------------------------------------" << endl;
  53.     cout << "ЭТАП E. Определение адреса, по которому хранится переменная (операция взятия адреса)" << endl;
  54.     double d = 141.3908, dd;
  55.     float f = -5.986, ff;
  56.     int i = 273, ii;
  57.     cout << "Переменная: ее значение и адрес в ОП - x, &x" << endl;
  58.     cout << "double: " << d << " " << &d << endl;
  59.     cout << "float: " << f << " " << &f << endl;
  60.     cout << "int: " << i << " " << &i << endl;
  61.     cout << "------------------------------------------------------------" << endl;
  62.     cout << "ЭТАП F. Присваивание указателю адреса, по которому хранится некоторая переменная" << endl;
  63.     pd = &d; pf = &f; pi = &i;
  64.     cout << "Указатель: адрес в ОП и значение - px, *px" << endl;
  65.     cout << "double: " << pd << " " << *pd << endl;
  66.     cout << "float: " << pf << " " << *pf << endl;
  67.     cout << "int: " << pi << " " << *pi << endl;
  68.     cout << "------------------------------------------------------------" << endl;
  69.     cout << "ЭТАП G. Присваивание переменной значения, хранящегося в области памяти, "
  70.          << "с которой связан указатель" << endl;
  71.     dd = *pd; ff = *pf; ii = *pi;
  72.     cout << "Переменная: ее значение и адрес в ОП - xx, &xx" << endl;
  73.     cout << "double: " << dd << " " << &dd << endl;
  74.     cout << "float: " << ff << " " << &ff << endl;
  75.     cout << "int: " << ii << " " << &ii << endl;
  76.     system("pause");
  77.  }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement