int f; //声明一个整形变量
int *f; //声明一个指针变量
int *f,g; //声明一个指针变量f和一个整形变量g
int f(); //声明一个函数,返回整形数值
int (*f)(); //声明一个函数指针,f是指针变量,返回int型
int *f(); //声明一个指针函数,f是函数,该函数返回int行指针
int *(*f)(); //声明一个函数的指针,也可以说是一个只想函数地址变量,f为指针变量,只想这个函数,返回int型指针
int f[]; //声明一个数组,
int *f[]; //声明一个数组指针,f为1个数组,数组里的数据存储的都是执行int型数据的指针。
int (*f[])(); //声明一个函数指针数组,f是一个数组,数组里存储的数据都是指向一个函数的指针,这个指针指向的函数返回int型数据
int *(*f[])(); //声明一个函数指针数组,f是一个数组,数组里存储的数据都是指向一个函数的指针,这个指向的函数返回int型指针数据(返回指向int数据的地址)
struct A
{
char a1;
int a2;
}; //声明一个没有名字的结构体
struct A f; //声明一个结构变量f
typedef B
{
int b1;
char b2;
}b; //声明一个命为b的结构
b f; //声明一个结构变量f