Можно ли передать какой-нибудь примитивный тип в функцию, ожидающую указатель? - PullRequest
1 голос
/ 06 февраля 2020

В основном мне интересно, каковы правила для передачи указателей против ссылок на функции в C ++. Я не мог найти их где-либо заявлено. Можно ли передать целое число примитивного типа, например, в функцию, ожидающую указатель? Разве вы не можете только передавать указатели на методы, ожидающие указатели?

1 Ответ

0 голосов
/ 06 февраля 2020

Указатель - это просто адрес памяти, а в c ++ вы можете получить адрес переменной, используя &. Вот пример

#include <iostream>

void increment(int& x)
{
    ++x;
}

void increment2(int* x)
{
    ++(*x);
}

int main()
{
    int i = 1;
    int * p = new int(1);

    increment2(&i);
    increment2(p);
    std::cout << i << std::endl;
    std::cout << *p << std::endl;

    increment(i);
    increment(*p);
    std::cout << i << std::endl;
    std::cout << *p << std::endl;
}

output

2
2
3
3

попробовать: https://godbolt.org/z/br9APq

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...