第1个回答 2013-06-20
#include <stdio.h>
/*
用typedef的方式定义一个函数指针,此处pFunc是指向一个返回值为int型,入参为char *类型的函数。我们当然也可以用int (*pFunc)(char *p)来定义函数指针,其对应赋值语句可写成 pFunc = count1。在调用时用 (*pFunc)(str) 即可,当然也可以直接调用 pFunc(str), 对这两种调用存在着一些分歧
*/
typedef int (*pFunc)(char *p);
int count1(char *p)
{
int count = 0;
while (*p != '\0')
{
if (*p >= 'a' && *p <= 'z')
{
count ++;
}
p ++;
}
return count;
}
int main()
{
char str[] = "aBcDe34Gr";
pFunc p_func; //此处定义了一个函数指针
p_func = count1; //把count1函数的地址赋值给p_func
printf("结果是 :%d\n",(*p_func)(str)); //函数指针调用
//printf("结果是 :%d\n", p_func(str));亦可
return 0;
}