В чем разница в передаваемом параметре функции для C++?

В чем разница между записями:

int32_t Function1(const int32_t c);
int32_t Function2(const int32_t &c);
int32_t &Function3(const int32_t &c);

Ответы (1 шт):

Автор решения: dIm0n

В первом случае передаёте константу по значению:

int32_t Function1(const int32_t c);

Во втором - ссылку на константу:

int32_t Function2(const int32_t &c);

В третьем - ссылку на константу + возвращается ссылка на неконстанту:

int32_t &Function3(const int32_t &c);

То есть между 2 и 3 нет разницы в передаваемом параметре, а между 1 и 2/3 - есть.

→ Ссылка