1、明确当前是什么类型
int main()
{
int a; //变量
int *b; //指针
int c[10]; //数组
int d(); //函数声明
/*
指针数组分析过程:
因为下标运算符的优先级高于*运算符,所以e首先与[]结合成为e[],所以e是个数组
又因为是e的前面是int*,所以它是个保存指针的数组,简称为指针数组
*/
int *e[10];
/*
数组指针分析过程:
因为()运算符的优先级高于[]运算符,所以f首先与*结合成为指针,所以f是个指针
(不与int*组合,因为小括号没括入int,如果括入int就会报错)
f指向剩下的部分(int [10]),所以f是指向数组的指针,就是数组指针
*/
int (*f)[10];
/*
返回值是int*,参数是两个int的函数,它只是普通的函数声明
g表示函数名,即是返回值为int*,参数是int,int的函数
*/
int *g(int,int);
/*
函数指针的分析过程:类似数组指针
h首先与*结合成为指针,所以h是个指针,h指向的是剩下的部分,
它有参数,有返回值,所以指向的是一个函数,所以他是指向函数的指针
*/
int (*h)(int,int);
return 0;
}
2、函数指针的使用
int Max(int a,int b)
{
return a>b ? a : b;
}
int Min(int a,int b)
{
return a<b ? a : b;
}
int main()
{
int (*fun)(i