#include <cstdio>
using namespace std;
void f(int &a)
{
a=3;
}
int main(void)
{
int t=0;
int *p=&t;
f(*p);
printf("%d",t);
return 0;
}
После этого в t окажется 3! То есть, мы сначала разыменовали указатель и (вроде как) получили значение. Однако в функцию оно передалось всё равно по ссылке! Замечу, что f(p) писать нельзя.
Оффтоп: а ещё можно указатель на функцию разыменовывать сколько угодно раз. Имя любой функции -- тоже указатель. То есть можно: (********printf)("hello");