Здравствуйте, r0nd, Вы писали:
R>>- У указателя есть адрес, а у ссылки нет;
R>У всего есть адрес, в том числе и ссылок:
R>#include <stdio.h>
R>static char b = '1';
R>int main()
R>{
R> char& a = b;
R> char* c = &b;
R> printf("0x%x, 0x%x, 0x%x", &a, c, &b);
R> return 0;
R>}
R>
Извиняюсь, что встреваю в разговор, но ты смотрел, что выводит твой код?
Program returned: 0
0x404018, 0x404018, 0x404018
"&a" возвращает, как и ожидается, ни что иное, как адрес объекта, на который ссылается ссылка.
В зависимости от контекста ссылка может работать как ненулевой указатель, поэтому в первом примере sizeof(aa) == sizeof(bb).
А может работать как псевдоним на уровне исходного кода, это демонстрирует второй пример.
Об этом выше уже упоминали.