Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Kuzia domovenok
1890 / 1745 / 118
Регистрация: 25.03.2012
Сообщений: 5,924
Записей в блоге: 1
#1

Ссылки и указатели - в чем преимущество одного над другим - C++

29.01.2014, 18:43. Просмотров 619. Ответов 4

Известно, что главной причиной появления ссылок в С++ было дать более безопасную альтернативу указателям в некоторых ситуациях. Ссылка в отличие от указателя обязана быть всегда инициализирована, а указатель можно не только забыть инициализировать но и уже инициализированный затереть, например. Преимущество очевидно? Но всегда ли ссылки инициализированы? Что будет с этим кодом?
C++
1
2
3
int* p=NULL;
int& ref=*p;
ref=1337;
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.01.2014, 18:43     Ссылки и указатели - в чем преимущество одного над другим
Посмотрите здесь:

В чем преимущество list над вектором? - C++
В чем преимущество list над вектором?

Память. Стек или куча - есть ли преимущества одного кода над другим? - C++
Здравствуйте, хотел спросить в чем различия. В чем тут недостатки и преимущества разных способов? Apple apple(); и Apple *apple = new...

Ссылки vs указатели - в чем разница? - C++
Навеяно соседней темой. Не понимаю в чем разница, хотя несколько раз честно пробовал почитать на эту тему, правда без должного внимания и...

В чем преимущество использования Pimpl? - C++
Есть две реализации одной лабораторной. Первая с закрытым наследованием, вторая с использованием Pimpl. Делают одно и тоже. Объясните...

В чем преимущество рекурсивных функций? - C++
Насколько я понял, любую рекурсивную функцию можно реализовать итерационно. И при этом, итерационная реализация не переполняет стэк,...

В чем преимущество объявления прототипов классов в хедере? - C++
Здравствуйте, можете подсказать, в чем преимущество объявления прототипов классов перед классом, в котором они используются? Или зачем так...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
daslex
1271 / 516 / 106
Регистрация: 02.08.2011
Сообщений: 2,665
29.01.2014, 18:51     Ссылки и указатели - в чем преимущество одного над другим #2
оттого, что вы инициализировали ссылку указателем в никуда, правило
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
Ссылка в отличие от указателя обязана быть всегда инициализирована
не отменяется.

Не по теме:


проблема не в ссылке, а указателе и не надо стрелки переводить

0x10
2459 / 1631 / 238
Регистрация: 24.11.2012
Сообщений: 4,012
29.01.2014, 18:58     Ссылки и указатели - в чем преимущество одного над другим #3
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Стрелять, так стрелять (по сути то же самое)
C++
1
2
3
4
5
int main()
{
    int& a = *static_cast<int*>(NULL);
    a = 0x10;
}
zelim
77 / 77 / 4
Регистрация: 26.12.2011
Сообщений: 217
30.01.2014, 01:58     Ссылки и указатели - в чем преимущество одного над другим #4
0x10, И снова всё то же самое правило.
Стивен Дьюхерст писал: "Ссылки - это псевдонимы, а не указатели" ("Священные знания C++", глава 5, если не изменяет память).
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.01.2014, 05:12     Ссылки и указатели - в чем преимущество одного над другим
Еще ссылки по теме:

Статическая и динамическая линковка - в чем преимущество каждой? - C++
Помогите разобраться со статической и динамической линковкой. Я правильно понял, что статическая линковка упаковывает все либы в екзешник и...

Указатели и действия над указателями - C++
char *ptr, result, s1; ptr = strtok(s1, &quot; &quot;); if (strstr(result, strcpy(&quot; &quot;, strcpy(ptr, &quot; &quot;))) == NULL) strcat_s(result,...

Ссылки и указатели - C++
Всем привет. Совсем запутался с ссылками и указателями. Помогите решать задачку: Функция принимает два аргумента, число с плавающей...

Указатели и ссылки - C++
Экспериментируя с указателями пришел к вот таким выводам: int a; //переменная int *b; //указатель int &amp;c = a //ссылка на &lt;a&gt; ...

Ссылки, указатели - C++
Доброго времени. Как, используя ссылки, указатели и, возможно, другие приемы сделать что-то вроде этого?: int a = 1; int b = 2; ...

Указатели и ссылки - C++
Используя вместо самой переменной указатель на нее написать программу в соответствии с заданием: Вычислить y = cos|x3-x2|.


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

Или воспользуйтесь поиском по форуму:
Croessmah
Модератор
Эксперт CЭксперт С++
13051 / 7314 / 814
Регистрация: 27.09.2012
Сообщений: 18,052
Записей в блоге: 3
Завершенные тесты: 1
30.01.2014, 05:12     Ссылки и указатели - в чем преимущество одного над другим #5
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
Но всегда ли ссылки инициализированы?
Всегда, но никто не говорил, что ссылки должны быть всегда валидны.
C++
1
2
3
int & ref = * new int ;
delete &ref ;
ref = 123 ;
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
Преимущество очевидно?
видите, чтобы сделать ошибку надо уже шаманить понемногу
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
Что будет с этим кодом?
Да нет ничего, упадет скорее всего и всё.
Yandex
Объявления
30.01.2014, 05:12     Ссылки и указатели - в чем преимущество одного над другим
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru