zHz00 Untitled

понедельник, 15 июля 2013
17: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
http://www.randomdudes.com/bush/bush.html Current mu...
http://toread.spb.ru/pics/wozmi.jpg
Окончательно и бесповоротно.
Я совсем недвно узнала об этом дневнике.... порой кажетьс...
Вся боль находится внутри нас, она не существует сама по ...
- Устал я лежать в больнице. 8 лет уже. - А почему так ...

19.07.2013 в 18:35

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

Расширенная форма

Подписаться на новые комментарии
Получать уведомления о новых комментариях на E-mail