Если у нас есть этот код:
int foo=100;
int& reference = foo;
int* pointer = &reference;
Нет фактической бинарной разницы в справочных данных и данных указателя. (оба они содержат местоположение в памяти foo
)
часть 2
Итак, где же все остальные различия между указателями и ссылками (обсуждаются здесь) входят? Использует ли компилятор их или они на самом деле являются разными типами переменных на соответствующем уровне? Другими словами, выполните следующие действия на одном языке ассемблера?
foo=100;
int& reference=foo;
reference=5;
foo=100;
int* pointer=&foo;
*pointer=5;