Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "pch.h"
- #include <iostream>
- using namespace std;
- class TMyCl
- {
- public:
- int x;
- float a, b, c;
- double m, n;
- };
- void main()
- {
- setlocale(LC_ALL, "Russian");
- double * pd, *ppd; pd = new double;
- float * pf, *ppf; pf = new float;
- int pi, *ppi; pi = new int;
- TMyCl * po; po = new TMyCl;
- cout << "ЭТАП A. Определение количества памяти, занимаемой указателями на переменные разного типа" << endl;
- cout << "Результат операции sizeof - px, *px, *px, type*, type " << endl;
- cout << "double: " << sizeof(pd) << " " << sizeof(*pd) << " " << sizeof(double*) << " " << sizeof(double) << endl;
- cout << "float: " << sizeof(pf) << " " << sizeof(*pf) << " " << sizeof(float*) << " " << sizeof(float) << endl;
- cout << "int: " << sizeof(pi) << " " << sizeof(*pi) << " " << sizeof(int*) << " " << sizeof(int) << endl;
- cout << "TMyCl: " << sizeof(po) << " " << sizeof(*po) << " " << sizeof(TMyCl*) << " " << sizeof(TMyCl) << endl;
- cout << "-------------------------------------------------------------" << endl;
- cout << "ЭТАП B. Операция разименовывания указателя" << endl
- << "(определение значения, хранящегося в ОП по заданному адресу)" << endl;
- *pd = 0.00001; *pf = 7.6; *pi = 10;
- cout << "Указатель: адрес в ОП и значение - px, *px" << endl;
- cout << "double: " << pd << " " << *pd << endl;
- cout << "float: " << pf << " " << *pf << endl;
- cout << "int: " << pi << " " << *pi << endl;
- cout << "------------------------------------------------------------" << endl;
- cout << "ЭТАП C. Присваивание значения ранее инициализированного указателя другому указателю" << endl;
- ppd = pd; ppf = pf; ppi = pi;
- cout << "Указатель: адрес в ОП и значение - ppx, *ppx" << endl;
- cout << "double: " << ppd << " " << *ppd << endl;
- cout << "float: " << ppf << " " << *ppf << endl;
- cout << "int: " << ppi << " " << *ppi << endl;
- cout << "------------------------------------------------------------" << endl;
- cout << "ЭТАП D. Освобождение памяти и обнуление указателей" << endl;
- delete pd, pf, pi;
- pd = NULL; pf = NULL; pi = NULL; ppd = NULL; ppf = NULL; ppi = NULL;
- cout << "Освобождение памяти - px, ppx" << endl;
- cout << "double: " << pd << " " << ppd << endl;
- cout << "float: " << pf << " " << ppf << endl;
- cout << "int: " << pi << " " << ppi << endl;
- cout << "------------------------------------------------------------" << endl;
- cout << "Нажмите любую клавишу для продолжения" << endl; system("pause");
- cout << "------------------------------------------------------------" << endl;
- cout << "ЭТАП E. Определение адреса, по которому хранится переменная (операция взятия адреса)" << endl;
- double d = 141.3908, dd;
- float f = -5.986, ff;
- int i = 273, ii;
- cout << "Переменная: ее значение и адрес в ОП - x, &x" << endl;
- cout << "double: " << d << " " << &d << endl;
- cout << "float: " << f << " " << &f << endl;
- cout << "int: " << i << " " << &i << endl;
- cout << "------------------------------------------------------------" << endl;
- cout << "ЭТАП F. Присваивание указателю адреса, по которому хранится некоторая переменная" << endl;
- pd = &d; pf = &f; pi = &i;
- cout << "Указатель: адрес в ОП и значение - px, *px" << endl;
- cout << "double: " << pd << " " << *pd << endl;
- cout << "float: " << pf << " " << *pf << endl;
- cout << "int: " << pi << " " << *pi << endl;
- cout << "------------------------------------------------------------" << endl;
- cout << "ЭТАП G. Присваивание переменной значения, хранящегося в области памяти, "
- << "с которой связан указатель" << endl;
- dd = *pd; ff = *pf; ii = *pi;
- cout << "Переменная: ее значение и адрес в ОП - xx, &xx" << endl;
- cout << "double: " << dd << " " << &dd << endl;
- cout << "float: " << ff << " " << &ff << endl;
- cout << "int: " << ii << " " << &ii << endl;
- system("pause");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement