一、函数指针变量指向其他格式的函数
#include<stdio.h>
int add(int num1, int num2)
{
return num1 + num2;
}
typedef int(*fptr1)(int);
typedef int(*fptr2)(int, int);
int main()
{
fptr2 fptr_2 = add;
fptr1 fptr_1 = add;
printf("%d\n", fptr_1(1, 2));//这样居然没报错,只提示一个警告。
printf("%d\n", fptr_2(5, 6));
return 0;
}
上面没有报错,只提示了两个警告:warning C4020: “fptr_1”: 实参太多;warning C4113: “int (__cdecl *)(int,int)”和“fptr1”的参数列表不同。
程序还是运行了出来
二、函数指针与数据指针
#include<stdio.h>
int add(int num1, int num2)
{
return num1 + num2;
}
typedef int(*fptr)(int, int);
int main()
{
int a = 10;
int *p = &a;
fptr fptr1 = add;
fptr1 = p;
printf("%d\n", *fptr1);
printf("%d\n", *