Я сейчас читаю Accelerated С++, и я понял, что я действительно не понимаю, как и работает в подписях функций.
int* ptr=#
означает, что ptr теперь содержит адрес num, но что это значит?
void DoSomething(string& str)
из того, что я понимаю, это пропуск по ссылке переменной (что означает передачу адреса), но когда я делаю
void DoSomething(string& str)
{
string copy=str;
}
то, что он создает, является копией str. То, что я думал, что это будет делать, это повысить ошибку, так как я пытаюсь назначить указатель на переменную.
Что здесь происходит? И в чем смысл использования вызовов * и и в функциях?