возвращая int & in функцию со статическим int - PullRequest
0 голосов
/ 25 февраля 2019

Предположим, мне нужно следующее:

int &f() {
static int x = 0;
return x;
}
void main() { f() = 5; }

Я понимаю, что эта функция возвращает ссылку на целое число (я пытался использовать эту функцию, возвращающую int & ).

Означает ли это, что x будет равен 5 в этом случае?

Я не совсем понимаю, что f() = 5 в этом ...

Кроме того, какое изменение может этоmake If опускает 'static' выше?Я знаю, что static int - это целое число, которое на самом деле существует до того, как программа существует, но я не уверен, что оно помогает мне понять, какие изменения произойдут.

Я пытаюсь найти ответы на это с помощью отладчика..

1 Ответ

0 голосов
/ 25 февраля 2019

Означает ли это, что x будет равен 5 в этом случае?

Да.После того, как целому числу будет присвоено значение, оно будет равно этому значению.

Какое изменение это может сделать, если бы пропустить "static" выше?

Зависит откак вы намерены вести себя программыТолько удаление static приведет к тому, что программа будет иметь неопределенное поведение, так что это не будет хорошей идеей.Одним из возможных изменений может быть удаление всего объявления функции и ее вызова.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...