C++ с параметром функции вызова "&" и funcrameter вызываемого абонента "*" [Дубликат]C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 C++ с параметром функции вызова "&" и funcrameter вызываемого абонента "*" [Дубликат]

Сообщение Anonymous »

Я понимаю код, в котором вызывающая функция имеет переменную, а вызываемая функция в подпрограмме имеет амперсанд. Амперсанд в вызываемой функции означает, что любые изменения, внесенные в эту функцию, отражаются в вызывающей функции, т. е. вы передаете по ссылке, а не по копии. Но чем это отличается от следующего?

Код: Выделить всё

  void swap(int* a, int* b) {
int temp = *a;
*a = *b;
*b = temp;
}

int main() {
int x = 5, y = 10;
swap(&x, &y);
}
Вышеупомянутую функцию подкачки можно было бы с тем же успехом выполнить с амперсандами в вызываемой функции и простыми переменными в вызывающей функции, без необходимости использования звездочек в вызываемом объекте и амперсандов при вызове. Так зачем же беспокоиться о звездочках и амперсандах?

Подробнее здесь: https://stackoverflow.com/questions/798 ... -parameter
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»