Добавил:
sl0_0t
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:LAB4 C++
.txt#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, ссылка всегда есть
// указатель имеет ссылку, ссылка это и есть ссылка
}
Соседние файлы в предмете Языки программирования