目录
一.typedef关键字高级用法
1.1 定义函数指针类型
定义一个函数指针类型,用 typedef 简化声明
typedef int (*func1)(int, int);
int add(int a, int b) {
return a + b;
}
func1 test1; // 使用 typedef 后的函数指针类型
test1= add; // 将函数指针指向加法函数
1.2 定义数组指针类型
int test2[4] = {1, 2, 3, 4};
// 使用 typedef 定义一个数组指针类型
typedef int (*array)[4];
array ptr; // 使用 typedef 后的数组指针类型
ptr = test2;
1.3定义指针数组类型
typedef int* i[3];
int a = 10, b = 20, c = 30;
i arr = { &a,&b,&c };
二.例子
分析以下定义:
typedef int *(*array)(int);
array tets[3]
上面定义相当于:
int *(*array[3])(int);
*array[3]是一个指针数组,指针数组中存放的是指针函数的地址。