Код, который вы отправили, является C++, а не C, поскольку C не имеет ссылок.
При этом ссылочный тип в C++ вряд ли отличается от указателя, за исключением того, что после инициализации он не может указывать на разные точки (не может хранить разные адреса). Он практически является указателем с семантикой указателя, чтобы получить от указателя к указателю скрытый.
С помощью ссылок вы можете получить дополнительную безопасность в тех случаях, когда ссылка всегда должна указывать на что-то действительное. Например, вы не можете присвоить значение null ссылке. Таким образом, с точки зрения C++ многие часто поощряют использование ссылок, когда это возможно, потому что тот факт, что он имеет больше ограничений и сужает варианты, может означать меньшее количество способов злоупотребления им.
С точки зрения производительности, в очень теоретическом плане оптимизирующий компилятор может использовать тот факт, что ссылка не может изменять адреса, назначенные ей в свою пользу. На практике большинство оптимизирующих компиляторов не настолько глупы, чтобы требовать эту помощь от программиста, и многие из них засвидетельствовали, что оптимизирующие компиляторы испускают одну и ту же сборку независимо от того, используете ли вы ссылки или указатели.
Таким образом, практический ответ на ваш вопрос, как правило, нет, нет разницы в производительности.
Второй снипп недействителен в C. В C. C. – haccks
отсутствует пропуск. Http://stackoverflow.com/questions/6732706/c-passing-arguments-by-reference-and-pointer – Varaquilex
Вы отметили свой вопрос с C, но C не имеет ссылок. Вы имели в виду C++? Кроме того, не должно быть никаких различий в производительности. –