Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
Hagrael
БТР - мой друг
331 / 275 / 47
Регистрация: 07.01.2010
Сообщений: 1,932
1

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

16.06.2012, 17:24. Просмотров 542. Ответов 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
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.06.2012, 17:24
Ответы с готовыми решениями:

Что такое string на самом деле?
Всем привет! Столкнулся с проблемой и никак не могу разобраться. Мне необходимо из строки...

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

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

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

Подскажите как заставить программу видеть то, что есть на самом деле
Я написал программу, которая работает с русским текстом. И когда я сравниваю в if'e элемент и...

4
Jupiter
Каратель
Эксперт С++
6581 / 4002 / 400
Регистрация: 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 / 275 / 47
Регистрация: 07.01.2010
Сообщений: 1,932
16.06.2012, 19:58  [ТС] 3
А записи, которые я сделал, правильны?
0
Jupiter
Каратель
Эксперт С++
6581 / 4002 / 400
Регистрация: 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 / 275 / 47
Регистрация: 07.01.2010
Сообщений: 1,932
17.06.2012, 13:11  [ТС] 5
Понял, спасибо.
0
17.06.2012, 13:11
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.06.2012, 13:11

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

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

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


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

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