1、指针函数:指针 作为函数的 返回值
应用实例1:解密藏头诗:
#include <stdio.h>
char *change(char s[][20], char t[]);
void main(void)
{
int i;
char s[4][20] , t[10], *p;
printf(“请输入藏头诗:\n”);
for(i = 0; i < 4; i++)
{
scanf("%s", s[i]);
}
p = change(s, t);
printf("%s\n", p);
}
char * change(char s[][20], char t[])
{
int i;
for(i= 0; i < 4; i++)
{
t[2 * i] = s[i][0];
t[2 * i + 1] = s[i][1];
}
t[2 * i] = '\0';
return t;
}
2、函数指针:指向 函数 的指针
(1)每个函数都占用一段内存单元,有一个入口地址(起始地址)
(2)函数名:函数的入口地址
(3)函数指针:一个指针变量,接收函数的入口地址,让它指向函数
应用实例:
(1)通过 函数指针 调用函数;
#include <iostream>
using namespace std;
int max(int x, int y)
{
return (x) > (y) ? (x) : (y);
}
int main()
{
int a = 3, b = 6, c = 9, d;
int (*p)(int, int) = &max; //定义 函数指针
d = (*p)((*p)(a, b), c);
cout << "d = " << d << endl; //输出 d=9
}
(2)做为 函数 的参数。