В текстовых книгах указано, что оператор & (addressof) не применяется к не может применяться к выражениям,
константы или переменные регистра.
Существуют ли константы только литералы типа «A», «7» и т. Д. Или переменные, объявленные с ключевым словом const?
Я думаю, что это означает только литералы, так как следующий код компилируется: -Использование & (addressof) с константными переменными в C
int main()
{
const int i=10;
const int *ip;
ip = &i;
}
Следует отметить, однако, что в C++ (в отличие от C) допускается использование адреса переменной с классом хранения 'register' (даже если это не имеет большого смысла). –
& оператор может применяться ко всему, что имеет адрес памяти. Конечно, литералы, такие как «A» 7, хранятся где-то в памяти (время выполнения), правильно? Конечно, я чего-то не хватает :) – Ankur
Простые литералы, подобные этим, закодированы в инструкции, как непосредственные операнды. –