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

ЯП4 / ЯП4

.cpp
Скачиваний:
0
Добавлен:
22.04.2023
Размер:
1.99 Кб
Скачать
#include <iostream>
using namespace std;
int sum(int a, int b)
{
    return a + b;
}
int main()
{
    setlocale(LC_ALL, "Russian");
    //типизированный указатель
    int a = 10;
    int* ukaz = &a;
    cout << ukaz; //адрес переменной
    cout << "\n";
    cout << *ukaz; // значение переменной

    //нетипизированный указатель
    cout << "\t";
    void* ukaz2 = &a;
    cout << ukaz2; //адрес переменной

    //указатель на метод
    cout << "\n";
    int (*func_ptr)(int, int) = sum;
    cout << "Сумма:" << (*func_ptr)(2, 3) << "\n";

    // разница между указателем и объектом указателя
    int num1 = 10;
    int num2 = 5;
    int* ukrf1 = &num1;
    int* ukrf2 = &num2;
    cout << num1 << "\t" << num2 << "\n";
    cout << ukrf1 << "\t" << ukrf2 << "\n";
    cout << *ukrf1 << "\t" << *ukrf2 << "\n";
    *ukrf1 = *ukrf2;
    if (ukrf1 == ukrf2)
    {
        cout << "Указатели совпадают" << "\n";
    }
    else cout << "Разные указатели" << "\n";
    if (*ukrf1 == *ukrf2)
    {
        cout << "Объекты совпадают" << "\n";
    }

    //указатель константа и указатель на константу
    int numb1 = 10;
    int numb2 = 5;

    int* const p1 = &numb1; // 
    *p1 = 653; //меняем значение
    const int* p2 = &numb1;
    p2 = &numb2; // меняем адрес 

    //многоуровневый указатель
    int number = 10;
    int* pc = &number;
    int** ppc = &pc;
    int*** pppc = &ppc;
    cout << *pc << "\t";
    cout << **ppc << "\t";
    cout << ***pppc << "\t";

    //разница между указателями и ссылками
    int n = 10;
    int& link = n;

    int k = 10;
    int* show = &k;
    return 0;
}
Соседние файлы в папке ЯП4