Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.76/75: Рейтинг темы: голосов - 75, средняя оценка - 4.76
14 / 7 / 0
Регистрация: 20.09.2009
Сообщений: 89

Сравнение указателей и ссылок.

15.06.2010, 19:35. Показов 16157. Ответов 21
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Evg Посмотреть сообщение
В си есть указатели. Указатель и ссылка на низком уровне это одно и то же, но на уровне языка - разные вещи
Не совсем так для них компилятор вырабатывает разный ассемблерный код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
int main()
{
    //mov dword ptr [dwC], 18h;
    int dwC=24;
    //Передача по ссылке
    //lea eax,[dwC]
    //mov dword ptr [ldwC1],eax
    int *ldwC1 (&dwC);         //значение получено ldwC1[0]-24
    //Присваивание другого указателя
    //mov eax,dword ptr [ldwC1]
    //mov dword ptr [ldwC2],eax
    int *ldwC2=ldwC1;          //значение получено ldwC2[0]-24
    //Присваивание адреса с преобразованием
    //mov eax,dword ptr [dwC] 
        //mov dword ptr [ldwC3],eax 
    int *ldwC3=*(int**)&dwC;   //значение не получено ldwC3[0]-неопределено
}
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
15.06.2010, 19:35
Ответы с готовыми решениями:

Касательно указателей и ссылок.
Цитирую фразу из популярной ныне книги Айвора Хортона. "Никогда не возвращайте из функции ссылку на локальную переменную" Так вот....

Использование ссылок и указателей
Добрый вечер Помогите разобраться и понять «Использование ссылок и указателей» Прочел много литературы но понять сложно Объясните...

Совместное использование указателей и ссылок
int *ptr; int &ref = *ptr; ref = 1; Вот и весь вопрос. Ничего плохого в этом нет?

21
бжни
 Аватар для alex_x_x
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
19.02.2012, 15:44
Студворк — интернет-сервис помощи студентам
AzaKendler, думаю эффект тут только относительно объектов - rvalue references позволяют избежать вызова конструктора копирования и связанных с ним издержек. Очевидно выигрыш тут будет больше чем одна инструкция асма
0
 Аватар для AzaKendler
214 / 116 / 14
Регистрация: 30.05.2011
Сообщений: 1,772
Записей в блоге: 15
19.02.2012, 16:48
alex_x_x, пожалуй ты прав наверно в этом вся соль

C++
1
2
3
4
5
6
7
8
9
10
11
12
remote_integer& operator=(remote_integer&& other) {
        cout << "MOVE ASSIGNMENT OPERATOR." << endl;
 
        if (this != &other) {
            delete m_p;
 
            m_p = other.m_p;
            other.m_p = NULL;
        }
 
        return *this;
    }
C++
1
2
3
4
5
6
7
8
9
10
11
12
remote_integer& operator=(remote_integer& other) {
      
 
        if (this != &other) {
            delete m_p;
 
            m_p = other.m_p;
            other.m_p = NULL;
        }
 
        return *this;
    }
как на твой взгляд в чем различие будет?


считается что вызова деструктора не будет в первом случае. т.е. данные не скопировались
а "как бы перенеслись" и обнулив данные объекта переданного по rvalue мы предотвращаем вызов его деструктора. если не так понял. поправьте

Добавлено через 5 минут
Evg, вопрос в том что если lvalue ref и указатель это на низком уровне одно и тоже, то rvalue ref
судя по всему отличается и хотелось более ясного представления, а что же он таки делает и почему дает те эффекты о которых пишется тут.
т.е. мне показалось что переменная см. скрин, вначале помещается в некую "область для временных данных". в общем хотелось мнения людей понимающих хорошо ассемблер.
помещая переменную в такую область какой выигрыш можно получить?
что прозойдет с объектами если к ним обратится через rvalue.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
19.02.2012, 16:48

Ступор в возврате указателей и ссылок
Изучаю С++ базовый курс от Шилтда, все проходил на твердую четверку, и на предпоследней теме про системы ввода-вывода абсолютно запоролся...

Объясните суть ссылок и указателей в коде
Всем добрый день! В общем, есть код (не судите, что примера попроще я не подобрал, просто подумал, что лучше я спрошу прям на деле),...

Операции присвоения с использованием указателей и ссылок
с помощью указателя pOcenka присвойте соответствующей переменной (o_inf или o_math) значение равное I. При помощи оператора * извлеките на...

Реализация программы с использованием ссылок и указателей
Добрые люди! Подскажите, есть ли тут использованные ссылки и указатели? Препод не принимает лабораторную работу, пока я не реализую...

Демонстрация работы ссылок, указателей или дескрипторов
Нужна помощь. Есть у кого готовый код, который демонстрирует работу указателей, ссылок или дескрипторов? Например сборка мусора ссылаясь на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
22
Ответ Создать тему
Новые блоги и статьи
Море в объективе
kumehtar 06.07.2026
Хотел написать много проникновенных слов, но передумал. Оно само - говорит. Кто слышит тот слышит.
Оказывается, Unreal Engine позволяет качество на порядки выше, чем было в Lineedge
Etyuhibosecyu 05.07.2026
Жаль, конечно, что я не узнал об этом, пока Lineedge существовала, а то бы Noname2331 написал, что волки превращаются в пиксельную кашу, а я бы его попросил скачать какую-нибудь бриллиантовую или Pro. . .
Doom для терминала без стрельбы и монстров. 3D Raycasting на ascii.
dcc0 05.07.2026
Попросил нейронную сеть deepai. org написать рейкастинг 3D с библиотекой ncurses для Linux. Чтобы можно было ходить на стрелочки. Чтобы стены были отрисованы символами. Справилась. Первый вариант. . .
Установка статуса документа по условию
Maks 05.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "НарядПутевка" разработанного в КА2. Задача: в табличной части "Материалы" документа при записи автоматически устанавливать статус. . .
Сезонность и суточность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет. Но обычно это 50 лет и более. Наверное, закисление почвы происходит сезонно в средней. . .
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи. Через несколько переработок от PHP кода к C89 (надеюсь, 89). Но довольно запутанно получилось. Код для Linux. Но если убрать time и то, что с ним. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru