您的位置:首页 > 其它

C基础--函数指针作为函数的参数

2015-09-23 08:56 274 查看
#include <stdio.h>

int add(int a, int b)
{
printf("%d\t%d\n", a, b);
return a+b;
}
char max_ch(char *str)
{
int max, i;
max = 0;
for (i = 0; str[i] != '\0'; i++)
if (str[i] > str[max])
max = i;

return str[max];
}
int main1(void)
{
int res;
int (*p)(int, int);
p = add;
res = p(3, 5);
//res = add(3, 5);
printf("%d\n", res);

char (*q)(char *);
q = max_ch;
printf("%c\n", q("hello"));
return 0;
}

void ox_say(char *str)
{
printf("%s\n", str);
}
void dog_say(char *str)
{
printf("%s\n", str);
}
void man_say(char *str)
{
printf("%s\n", str);
}

void say_what(void (*p)(char *), char *s)
{
//...
p(s);
}
//函数指针作为函数的参数
int main(void)
{
int num;
while (1) {
scanf("%d", &num);
switch (num)
{
case 1:say_what(ox_say, "mn mn");break;
case 2:say_what(dog_say, "wang wang");break;
case 3:say_what(man_say, "Oh, yeah");break;
}
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: