Чтобы понять этот урок, вы должны знать, как использовать указатели на C. Итак, прочитайте предыдущую статью об указателях: Указатели на C
Теперь, вооружившись знанием указателей, давайте продвинемся в нашем стремлении научиться программированию на С на один шаг вперед. Сегодня я расскажу вам о второй расширенной функции функций - вызове по значению и вызове по ссылке в C. До сих пор мы сознательно или неосознанно использовали функцию вызова по значению во многих программах. Так что будет легко понять логику этого. С другой стороны, вызов по ссылке используется с указателями.
Call по значению в C
В предыдущих уроках я рассказывал вам о реальных и формальных аргументах (параметрах). В этом методе всякий раз, когда мы вносим изменения в формальные аргументы, он не меняет значение в реальных аргументах. Как следует из названия, функция вызова по значению означает вызов функции и передачу в нее некоторых значений. Значения фактических аргументов копируются в формальные аргументы. Мы делали это так много раз до сих пор. Давайте возьмем свежий пример, чтобы понять это быстро.
Выход
объяснение
- Код программы почти не требует пояснений. Сначала я напечатал значение переменной a перед вызовом функции, а затем передал один аргумент в функцию fun ().
- Значение переменной a функции main () копируется в переменную a функции fun ().
- Теперь я изменил значение переменной a, добавив в нее 5. После этого я напечатал переменную a в функции fun ().
- Наконец значение переменной a снова выводится в main (). В выводе вы можете заметить, что изменение, которое было сделано в переменной a в функции fun (), не влияет на значение переменной a в main ().
Звоните по ссылке в C
Как я уже говорил ранее при применении функции вызова по значению, мы не можем изменять значения в реальных аргументах, изменяя значения в формальных аргументах. Много раз мы придерживаемся условия, когда нам нужно изменить значения фактических аргументов в любой другой функции. В этих случаях мы используем вызов по ссылочному методу.
В этом методе мы отправим адрес переменных в функцию. Любые изменения в формальных аргументах вызывают изменение в реальных аргументах. Давайте создадим простую программу, чтобы понять эту тему.
Выход
объяснение
- Сначала я объявил функцию fun () с аргументом в виде целочисленного указателя.
- В вызове функции я передал адрес переменной a вместо передачи ее значения.
- Теперь у меня есть адрес в переменной-указателе функции fun ().
- Затем я сделал некоторые изменения в переменной указателя и напечатал ее значение. Наконец, переменная a снова печатается в main ()
- В выводе вы можете видеть, что изменение, внесенное в переменную-указатель a функции fun (), вызывает изменение в переменной a main ().
Вы можете столкнуться с трудностями в понимании концепции вызова по ссылке. Вы можете задать свои вопросы, комментируя ниже.
Комментариев нет:
Отправить комментарий