Если вы изучаете C (а не C ++), то ссылок нет.
Термин «передача по ссылке» в C просто означает, что вы передаете указатель в качестве адреса, в котором будет храниться значение, чтобы функция могла изменить свое значение.
В противном случае вы передаете по значению, которое означает, что копия переменной генерируется в стеке, и изменения не оказывают влияния.
Во многих отношениях это похоже на то, что вы видите в Java, за исключением того, что в Java вам не нужно явно превращать объекты в указатель или разыменовывать их. Другими словами, когда вы передаете указатель, адрес копируется в стек, поэтому, если ваша функция изменяет указатель (а не данные, на которые она указывает), эти изменения исчезают, когда вы закончите с функцией. Точно так же, когда вы передаете ссылку на объект в Java, вы можете изменить содержимое объекта (например, путем вызова функций), но изменение varialbe для указания на другой объект не будет иметь никакого эффекта после вашего выхода.
Если вы использовали C ++ (который выглядит как C), то вы можете передавать по ссылке, в этом случае вам не нужно иметь дело с указателями, и изменения в переменной в функции фактически изменяют внешнее значение напрямую ( за исключением того, что вы не можете указать это на что-то еще).