简介
函数指针是一种存储函数内存地址的方式,就像变量存储值的内存地址一样。当通过指针调用函数时,这被称为函数指针。
在本实验中,我们将编写一个 C 程序来演示如何使用函数指针。
函数指针是一种存储函数内存地址的方式,就像变量存储值的内存地址一样。当通过指针调用函数时,这被称为函数指针。
在本实验中,我们将编写一个 C 程序来演示如何使用函数指针。
在这一步中,我们将声明并定义一个函数,该函数接受两个整数参数且不返回任何值。
#include<stdio.h>
void func(int a, int b)
{
printf("\n\n a = %d \n", a);
printf("\n\n b = %d \n", b);
}
在这一步中,我们将声明一个指向步骤 1 中创建的函数的指针。声明函数指针的语法与声明变量指针的语法类似,但需要指定被指向函数的参数类型和返回类型。
// function pointer
void (*fptr)(int , int);
在这一步中,我们将把步骤 1 中创建的函数的地址存储到步骤 2 中创建的指针中。
// assign address to function pointer
fptr = func;
在这一步中,我们将使用步骤 2 中创建的函数指针来调用步骤 1 中创建的函数。
// function calling
func(2,3);
fptr(2,3); // calling a function referring to pointer to a function
打开 ~/project/
目录下的 main.c
文件。
#include<stdio.h>
void func(int a, int b)
{
printf("\n\n a = %d \n", a);
printf("\n\n b = %d \n", b);
}
int main()
{
printf("\n\n\t\tLabEx - Best place to learn\n\n\n");
// function pointer
void (*fptr)(int , int);
// assign address to function pointer
fptr = func;
// function calling
func(2,3);
fptr(2,3); // calling a function referring to pointer to a function
printf("\n\n\t\t\tCoding is Fun !\n\n\n");
return 0;
}
要编译代码,请打开终端并输入以下命令:
gcc main.c -o main
要运行程序,请输入以下命令:
./main
在本实验中,我们学习了如何在 C 程序中使用函数指针。我们了解了如何声明和定义需要指向的函数,如何声明函数指针,如何将函数的地址存储到指针中,以及如何使用指针调用函数。使用函数指针可以使复杂的程序更易于编写和理解。