|
|
|
Ccылки и указатели в Си++
|
|||
|---|---|---|---|
|
#18+
HryuckinnenЧто ксается формальных параметров, там ссылки действительно превращаются в указатели. Нах, если можно напрямую пользовать ссылаемый объект? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2007, 18:25:06 |
|
||
|
Ccылки и указатели в Си++
|
|||
|---|---|---|---|
|
#18+
Akh wrote: > Нах, если можно напрямую пользовать ссылаемый объект? К любому объекту адресация происходит через адрес (если он не крошечный и не умещается в регистр). Какие ещё варианты могут быть, кроме превращения ссылок (да и вообще всех переменных) в указатели? -- We are all going to hell and I'm driving the bus Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2007, 18:26:57 |
|
||
|
Ccылки и указатели в Си++
|
|||
|---|---|---|---|
|
#18+
Теперь я всех запутал:) Короче, есть две ситуации с использованием ссылок, но с разной семантикой. Первая ситуация - использование ссылки в качестве псевдонима переменной Пускай переменная будет глобальная, чтоб не заморачиваться со стековым кадром. Выходной код возьмём для i8086 (меньше букв придется написать). Код: plaintext 1. 2. 3. 4. 5. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. Вторая ситуация - передача параметра в функцию. Тут использование ссылки - это указание компилятору, что передачу фактического параметра надо осуществить по адресу. Поясню разницу (для примера опять возьму i8086 и не буду заморачиваться стековыми кадрами). Передача по значению (без указателей и ссылок): Код: plaintext 1. 2. 3. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. Код: plaintext 1. 2. 3. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2007, 18:59:20 |
|
||
|
Ccылки и указатели в Си++
|
|||
|---|---|---|---|
|
#18+
ErV Akh wrote: > Нах, если можно напрямую пользовать ссылаемый объект? К любому объекту адресация происходит через адрес (если он не крошечный и не умещается в регистр). Какие ещё варианты могут быть, кроме превращения ссылок (да и вообще всех переменных) в указатели? -- We are all going to hell and I'm driving the bus Posted via ActualForum NNTP Server 1.4 Собстна, первый вариант от Hryuckinnen. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2007, 10:04:16 |
|
||
|
Ccылки и указатели в Си++
|
|||
|---|---|---|---|
|
#18+
ErV пишет: > Т.е. грубо говоря - ссылка - это указатель, который не может быть > изменен, И всегда разименован. и должен быть инициализирован при объявлении. т.е. (если не > извращаться с cast'ингами) гарантировано наличие объекта, на который > ссылаемся... и еще адресная арифметика со ссылками не работает (потому что указатель ссылки всегда разименован). Т.е. ссылка - это грубо говоря указатель-light. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2007, 10:55:02 |
|
||
|
Ccылки и указатели в Си++
|
|||
|---|---|---|---|
|
#18+
IggorrrСсылка - это разыменованный указатель. Отнюдь. Ссылка это указатель,который не может быть изменён(на какую ячейку памяти указывал, таким и помрёт). Указатель - переменная, которая указывает на ячейку памяти, и может указывать и на другую(если программист этого захочет). указатель ссылка адрес изменяем постоянно значение по адресу изменяемо изменяемо Ссылка тотже указатель со спецификатором const const char *c и char & c - по сути одно и тоже - различие в форме, т. синтаксисе ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2007, 17:14:15 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=34893499&tid=2027924]: |
0ms |
get settings: |
10ms |
get forum list: |
18ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
168ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
58ms |
get tp. blocked users: |
2ms |
| others: | 239ms |
| total: | 516ms |

| 0 / 0 |
