Я хотел бы создать указатель на значение в одну строку; Я хочу такую же функциональность, как эта:
int i = MY_VALUE
int * j = &i;
Тем не менее, я хочу сделать это в одной строке, и не хочу использовать две переменные. Я знаю, что я могу сделать это:
int * i = new int (MY_VALUE);
Но я не хочу использовать динамическую память; Я хочу использовать статическую память.
Есть ли способ, которым я могу выделить указатель на значение, статически, с одной переменной, в одной строке?
Если вы должны…
int i = 5, *p = &i;
Нет, вы не можете иметь указатель на значение, Вы можете иметь только указатель на переменную или же указатель на объект (lvalue).
Разработать, с точки зрения C, цитирование C11
глава §6.5.3.2 для использования &
оператор
Операнд одинарного
&
оператор должен быть либо указателем функции, результатом
[]
или одинарный*
оператор или lvalue, который обозначает объект, который не является битовым полем и является
не объявлено с указателем класса хранилища регистра.
Итак, что-то по линии
int * p = &10;
является чисто недействительным.