k будет выводить 2. Мой вопрос в каком порядке инициализирует параметр foo и получает аргумент? Что такое процесс Foo проходит, чтобы получить 2. СпасибоЧто происходит, когда вы инициализируете параметр? C++
ответ
void foo (int i , int k = 7);
Этот прототип означает, что если вы звоните Foo только первым парам второй неявно устанавливается на 7.
foo(1, 2); // i=1, k=2
foo(5); // <==> foo(5, 7) i=1, k=7
Этот механизм разрешается во время компиляции компилятором. Всякий раз, когда foo вызывается с отсутствием параметра k, компилятор автоматически вставляет его со значением 7 (то есть foo(5)
). Если он отсутствует, выполняется фактический параметр (т. Е. foo(1, 2)
).
Ваш пример не отличается, если вы указали foo
без параметра по умолчанию.
Параметры по умолчанию обрабатываются компилятором. Когда компилятор встречает вызов foo
только с одним параметром, он добавит вам второй параметр.
Например:
foo(3);
будет трансформируются компилятором в
foo(3, 7);
Это все.
Это называется инициализатором функций.
Если вы не назначаете второй параметр как foo (1,2), он выводит «7» на экран (когда вы используете foo (1)).
- 1. Что происходит, когда вы разыскиваете постинктекс C
- 2. Что происходит, когда вы инициализируете ссылку const ссылкой на конструктор преобразования?
- 3. Что происходит, когда вы логически не плаваете?
- 4. Что происходит, когда вы сравниваете два объекта?
- 5. Что происходит, когда вы делаете GetType()?
- 6. Что происходит, когда вы открываете/закрываете ручку?
- 7. Как вы инициализируете динамический массив в C++?
- 8. Как вы явно инициализируете ссылку в C++?
- 9. Что происходит, когда встроенная функция передается как параметр в C?
- 10. Что происходит, когда вы «порождаете» цикл?
- 11. Что происходит, когда вы управляете байтами поразрядно?
- 12. Что происходит, когда вы создаете задачу?
- 13. Что происходит, когда вы размываете элемент DOM
- 14. Что происходит, когда вы ждете неудавшейся задачи
- 15. Что происходит, когда вы получаете объект activerecord?
- 16. Что происходит, когда вы прерываете поток HTTP?
- 17. Что происходит, когда вы вызываете прерывание потока()?
- 18. Что происходит, когда вы рисуете из ничего?
- 19. Что происходит, когда вы возвращаетесь в браузер?
- 20. Что происходит, когда вы избегаете номеров?
- 21. Что происходит, когда вы используете файл?
- 22. Что происходит, когда вы вызываете объект .__ new__?
- 23. Что происходит, когда вы переопределяете макрос?
- 24. Что происходит, когда вы закрываете консольное приложение C++
- 25. C++ - Что происходит, когда вы индексируете массив с помощью float?
- 26. В C++, что происходит, когда вы возвращаете переменную?
- 27. Что происходит, когда вы объединяете символ в строку на C++?
- 28. Что происходит, когда вы вызываете статический метод в C#?
- 29. Как вы инициализируете репозиторий Git?
- 30. Java Как вы инициализируете Ehcache?
Это называется аргументом по умолчанию. –