Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

LAB4 C++

.txt
Скачиваний:
0
Добавлен:
03.11.2023
Размер:
2 Кб
Скачать
#include <iostream>

using namespace std;


void f(int a, int b) {
cout << a + b << endl;
}


int main()
{
int a = 10;
int* pa = &a;
cout << pa << endl; // типизированный указатель

int b = 15;
int* pb = &b;
void* pb2 = pb; // нетипизированный
cout << pb2 << " " << pb << endl;

int c = 20;
int* pc = &c; // указатель на данные
*pc = 2;
cout << *pc << " " << c << endl;

void (*plus) (int, int);
plus = f; // указатель на функцию
plus(2, 3);

// *pc = c , где pc указатель, а с указуемый объект

const int d = 25;
const int* pd = &d;
// *pd = 10; - не можем изменить
// d = 15; - не можем

int e = 30;
const int* pe = &e;
// *pe = 20; - не можем
// e = 13; - можем

int f = 100;
int* pf = &f;
int** ppf = &pf;

cout << ppf << endl; // указатель на ссылку области памяти на ссылку области памяти в которой хранится f
cout << *ppf << " " << &f << endl; // указатель на ссылку области памяти в которой f
cout << **ppf << " " << f << endl; // указатель на значение f

// разница


double x = 3.111;
double y = 9.111;
double& myref = x;
// int& myref = y; - ссылку переопределить нельзя
cout << myref << endl;

double z = 3.111;
double r = 9.111;
double* pz = &z; // указатель можно переопределить, изменить значение ячейки
// на область памяти которой он указывает
pz = &r;
*pz = 21.567;
cout << *pz << endl;

// указатель может = null, ссылка всегда есть
// указатель имеет ссылку, ссылка это и есть ссылка

}
Соседние файлы в предмете Языки программирования