Передача по ссылке и передача указателя

401 прочитал

Я уже как-то говорил, что в С/С++ указатели используют чаще, чем в других языках. Хотя это моё субъективное мнение и желающие могут с ним поспорить ))) Но факт остаётся фактом - если, например, в Паскале, даже при написании достаточно сложной программы вы можете ни разу не встретиться с указателями, то в С++ без понимания указателей делать совершенно нечего. Поэтому я по мере возможности сам изучаю этот вопрос, и делюсь некоторыми знаниями на своих ресурсах. И сегодня попробуем разобраться с тем, чем отличается передача в функцию указателя от передачи по ссылке.

Итак, сразу пример кода, а потом пояснения:

Я уже как-то говорил, что в С/С++ указатели используют чаще, чем в других языках.

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

Во вторую функцию передаётся ссылка на переменную. По сути это тот же указатель на область памяти, где хранится эта переменная. И в самой функции происходит то же самое - по ссылке записывается значение (в нашем примере 20).

Получается, что по смыслу обе функции одинаково работают. И отличаются они лишь по форме. Вторая функция несколько проще, хотя эта простота сводится лишь к тому, что вам нужно будет напечатать на один символ меньше. С другой стороны, если в функции ссылка встречается 10 раз, то это будет уже на 10 символов меньше. И, как говорится, “не думай о секундах свысока…”

На этом всё. Подписывайтесь на канал, чтобы ничего не пропустить.