Передача указателей на функции в C

Диаграммы и шаблоны архитектуры программного обеспечения Программирование и разработка

Передача указателей на функцию означает, что расположение переменных в памяти передается параметрам в функции, а затем выполняются операции. Определение функции принимает эти адреса с помощью указателей, адреса сохраняются с помощью указателей.

Передача аргументов без указателя

Когда мы передаем аргументы без указателей, изменения, сделанные функцией, будут внесены в локальные переменные функции.

Ниже приведена программа на C для передачи аргументов в функцию без указателя:

С

// C program to swap two values
//  without passing pointer to 
// swap function.
#include <stdio.h>
 
void swap(int a, int b)
{
  int temp = a;
  a = b;
  b = temp;
}
 
// Driver code
int main() 
{
  int a = 10, b = 20;
  swap(a, b);
  printf("Values after swap function are: %d, %d",
          a, b);
  return 0;
}

Выход

Values after swap function are: 10, 20

Аргументы Передача с указателями

В этом примере передается указатель на функцию. В качестве аргумента вместо переменной передается указатель и вместо ее значения передается ее адрес. В результате любое изменение, сделанное функцией с помощью указателя, постоянно сохраняется по адресу переданной переменной. В C это называется вызовом по ссылке.

Ниже приведена программа на C для передачи аргументов функции с помощью указателей:

С

// C program to swap two values
// without passing pointer to 
// swap function.
#include <stdio.h>
 
void swap(int* a, int* b)
{
  int temp;
  temp = *a;
  *a = *b;
  *b = temp;
}
 
// Driver code
int main()
{
  int a = 10, b = 20;
  printf("Values before swap function are: %d, %d\n"
          a, b);
  swap(&a, &b);
  printf("Values after swap function are: %d, %d"
          a, b);
  return 0;
}

Выход

Values before swap function are: 10, 20
Values after swap function are: 20, 10

Читайте также:  Tuple (кортеж) в C++
Оцените статью
bestprogrammer.ru
Добавить комментарий