Russian Qt Forum
Апрель 20, 2024, 14:43 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Интересно  (Прочитано 2562 раз)
OKTA
Гость
« : Октябрь 01, 2014, 16:08 »

Товарищи, кто может объяснить, как в памяти проходит такая хитрая работа с ссылкой?

Код
C++ (Qt)
class Foo
{
public:
   static int test(int *x) {
 
       x = new int;
       *x = 10;
       return *x;
   }
};
 
int main() {
 
   int x = 28;
 
   qDebug() << Foo::test(&x);
   qDebug() << x;
 
   return 0;
}

Вывод:

Код:
10
28
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4349



Просмотр профиля
« Ответ #1 : Октябрь 01, 2014, 16:57 »

Товарищи, кто может объяснить, как в памяти проходит такая хитрая работа с ссылкой?
Не очень понятно, что же вас удивляет.
Записан
OKTA
Гость
« Ответ #2 : Октябрь 01, 2014, 17:02 »

Ну грубо говоря то, что была ссылка, назначили ей другой адрес, а потом все вернулось на круги своя. Вот этот момент не понятен.
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4349



Просмотр профиля
« Ответ #3 : Октябрь 01, 2014, 17:05 »

Ну грубо говоря то, что была ссылка
Нет здесь ссылок. Указатели есть, ссылок нет.
Тот амперсанд означает "взять адрес объекта". Улыбающийся
Записан
OKTA
Гость
« Ответ #4 : Октябрь 01, 2014, 17:10 »

Шайтан  Смеющийся
Спасибо, Old)
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.071 секунд. Запросов: 22.