zHz00 Untitled

понедельник, 15 июля 2013
13:30 Ссылки в Си++: неочевидный (для меня) момент номер 0
Оказывается, можно так!

#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");

@темы: Программирование

URL

19.07.2013 в 14:35

19.07.2013 в 14:35
Ох уж эти ссылки. Весь моцк с ними сломать можно, вернее, его остатки. Но штука пользительная, особенно при работе с хитровымудренными классами и кучей указателей.
URL