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

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

Войти
Регистрация
Восстановить пароль
 
Hagrael
БТР - мой друг
331 / 273 / 2
Регистрация: 07.01.2010
Сообщений: 1,932
#1

Что такое ссылка на самом деле? - C++

16.06.2012, 17:24. Просмотров 439. Ответов 4
Метки нет (Все метки)

Здравствуйте. Насколько я понимаю, ссылка - это переменная, которая на самом деле является указателем на адрес другой переменной, но с которой можно обращаться так, как будто бы это переменная, располагающаяся по адресу, на который она указывает. Т. е.:
C++
1
2
3
4
5
6
int& a = b   =>   int* a = &b // если b - переменная
int& a = b   =>   int* a = b // если b - ссылка
a = c   =>   *a = c // если c - переменная
a = c   =>   *a = *c // если c - ссылка
d = a   =>   d = *a // если d - переменная
d = a   =>   *d = *a // если d - ссылка
Правильно ли я все понимаю?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.06.2012, 17:24
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Что такое ссылка на самом деле? (C++):

Что такое string на самом деле? - C++
Всем привет! Столкнулся с проблемой и никак не могу разобраться. Мне необходимо из строки string str получить unsignet char* для...

Оператор \ выражение - что же это такое на самом деле? - C++
Какого ... выражение называют оператором?

что же на самом деле делает strcpy? - C++
вот такой пример #include <iostream> #include <string> using namespace std; int main () { string buff; buff += "what a...

Передача массива в функцию - что на самом деле предается? - C++
Имя массива это константный указатель. Когда мы передаем его в функциюvoid f1(int *iArray) f1 это происходит как pass by reference. В...

На самом деле #define'а нету. - C++
На самом деле #define нету. Вот например если мы напишем в c++ #define yes 1 #define no 0 то на самом деле мы получим int yes=1; ...

Число double 0.1 на самом деле не 0.1 - C++
Кто сталкивался с таким глюком, почему если я задаю double x=0.1; в дебаггере я его вижу как 0.10000000000000001 ? я знал что float...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Jupiter
Каратель
Эксперт С++
6554 / 3975 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
16.06.2012, 17:35 #2
сылка эквивалентна константному разыменнованому указателю
C++
1
2
3
4
5
//int* const p; //ошибка - неициализированая константа
int a, b;
int* const p = &a; 
p = &a; //ошибка - изменение константы
std::cout << *p;
Выводы:
1) ссылка всегда инициализирована(3-я строка)
2) ссылка не может указывать на другой объект(4-я строка)
ну и в дополнение - ссылка неможет быть нулевой
1
Hagrael
БТР - мой друг
331 / 273 / 2
Регистрация: 07.01.2010
Сообщений: 1,932
16.06.2012, 19:58  [ТС] #3
А записи, которые я сделал, правильны?
0
Jupiter
Каратель
Эксперт С++
6554 / 3975 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
17.06.2012, 12:44 #4
Цитата Сообщение от Hagrael Посмотреть сообщение
А записи, которые я сделал, правильны?
из твоих записей правильны только и то с модификациями
C++
1
2
3
int& a = b => int* const a = &b // если b - переменная или ссылка
a = c   =>   *a = c // если c - переменная
d = a   =>   d = *a // если d - переменная
в остальных же записях ты неучитываешь тот факт что
Цитата Сообщение от Jupiter Посмотреть сообщение
сылка эквивалентна константному разыменнованому указателю
т.е. ссылку не надо разыменовывать
1
Hagrael
БТР - мой друг
331 / 273 / 2
Регистрация: 07.01.2010
Сообщений: 1,932
17.06.2012, 13:11  [ТС] #5
Понял, спасибо.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.06.2012, 13:11
Привет! Вот еще темы с ответами:

ошибки которых на самом деле нет - C++
possible use of идентификатор before diffinotion(С++) у меня в компиляторе возникает такое предупреждение, хотя все переменные объявлены...

Что такое файловый буфер? Что такое режим (модификатор) доступа, при работе с файлами? - C++
Что такое файловый буфер? Что такое режим (модификатор) доступа, при работе с файлами?

Что такое рекурсивный тип данных? Что такое конструкция рекурсивного типа? - C++
Что такое рекурсивный тип данных? Что такое конструкция рекурсивного типа?

Что такое хэндлер файла? Что такое файловый указатель? - C++
Что такое хэндлер файла? Что такое файловый указатель?


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
17.06.2012, 13:11
Ответ Создать тему
Опции темы

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