Создать указатель на значение в одной строке

Я хотел бы создать указатель на значение в одну строку; Я хочу такую ​​же функциональность, как эта:

int i = MY_VALUE
int * j = &i;

Тем не менее, я хочу сделать это в одной строке, и не хочу использовать две переменные. Я знаю, что я могу сделать это:

int * i = new int (MY_VALUE);

Но я не хочу использовать динамическую память; Я хочу использовать статическую память.

Есть ли способ, которым я могу выделить указатель на значение, статически, с одной переменной, в одной строке?

-1

Решение

Если вы должны…

int i = 5, *p = &i;
2

Другие решения

Нет, вы не можете иметь указатель на значение, Вы можете иметь только указатель на переменную или же указатель на объект (lvalue).

Разработать, с точки зрения C, цитирование C11 глава §6.5.3.2 для использования & оператор

Операнд одинарного & оператор должен быть либо указателем функции, результатом
[] или одинарный * оператор или lvalue, который обозначает объект, который не является битовым полем и является
не объявлено с указателем класса хранилища регистра.

Итак, что-то по линии

int * p = &10;

является чисто недействительным.

2

По вопросам рекламы [email protected]