Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

Документы

Медиа

Назад
Вопрос про C++: argument passing, by value, by reference, function

Как передаются аргументы функции в C++?

Вопрос проверяет знание различных способов передачи аргументов в функции C++.

Короткий ответ

В C++ аргументы могут быть переданы в функцию по значению или по ссылке. При передаче по значению создаются копии значений, и изменения внутри функции не затрагивают оригинальные данные. При передаче по ссылке передается адрес памяти аргумента, что позволяет функции изменять оригинальные значения.

Длинный ответ

Передача по значению:

  • Когда аргумент передается по значению, копия значения передается в функцию. Изменения в аргументе внутри функции не повлияют на оригинальные данные.

  • Этот метод используется, когда важна защита оригинальных данных от изменений в функции.

Передача по ссылке:

  • При передаче по ссылке передается ссылка на оригинальный объект (или переменную), что позволяет функции изменять его значения.

  • Этот метод полезен для работы с большими объектами или данными, так как он может быть более эффективным с точки зрения производительности.

Пример:

void passByValue(int x) {
    	x = 10;  // Изменения не затрагивают оригинальный аргумент
}

void passByReference(int& x) {
    	x = 10;  // Оригинальный аргумент изменяется
}

int main() {
    	int a = 5;
    	passByValue(a);  // a остаётся 5
    	passByReference(a);  // a становится 10
    	cout << a << endl;  // выводит 10
    	return 0;
}

 Передача по значению подходит, когда важно сохранить оригинальные данные, а передача по ссылке — для изменения данных и улучшения производительности.

Уровень

  • Рейтинг:

    1

  • Сложность:

    2

Навыки

  • C++

    C++

Ключевые слова

#argument passing

#by value

#by reference

#function

Подпишись на C/C++ Developer в телеграм