Анонімний користувач
Чим відрізняється передача за посиланням від передачі за значенням?
У чому різниця між
- параметром, що передається за посиланням
- параметром, що передається за значенням?
Наведіть, будь ласка, кілька прикладів.
538
3
Це спосіб передачі аргументів у функції. Передача за посиланням означає, що параметр викликаної функції буде таким самим, як і переданий аргумент викликаючої функції (не значення, а саме ідентичність - сама змінна). Передача за значенням означає, що параметр функції, що викликається, буде копією переданого аргументу. Значення буде те саме, але ідентифікатор - змінна - інша. Таким чином, зміни параметру, що виконуються викликаною функцією, в одному випадку змінюють переданий аргумент, а в іншому випадку просто змінюють значення параметру у викликаній функції (яка є лише копією). На швидку руку:
ref
використовується у викликаючій та викликаній функції). Джон Скіт також має гарне пояснення з цього приводу тут.Коди
Оскільки моя мова програмування C++, я буду використовувати її тут
І приклад на Java не завадить:
Вікіпедія
http://en.wikipedia.org/wiki/Pass_by_reference#Call_by_value
http://en.wikipedia.org/wiki/Pass_by_reference#Call_by_reference
Цей хлопець просто влучив у яблучко:
http://javadude.com/articles/passbyvalue.htm
Наведу приклад:
При передачі за посиланням передається фактично покажчик на змінну. При передачі за значенням ви передаєте копію змінної. У базовому використанні це зазвичай означає, що при передачі за посиланням зміни у змінній будуть помічені викликаючим методом, а при передачі за значенням вони не будуть помічені.