个人笔记-当做复习
数组指针:
int a[10];
int(*p)[8] = &a;
p是一个长度为10,成员类型是int的数组指针
用typedef简化数组指针定义:
typedef int arrTen[10];
arrTen* p;
//p是长度为10,成员类型是int的数组指针
一个返回数组指针的函数:
arrTen* func();
还有一种比较复杂的写法:
int (*func())[10];
效果相同:
可以这么理解上面这句话:
函数func的返回值解引用后是一个数组名
用c++11的尾置返回类型可以很好地解决:
auto func() -> int(*)[10]
{
}
函数指针数组:
int foo()
{
}
int main()
{
typedef int(*func)();
func pfunc = foo;
return 0;
}
还有一种比较绕的方法:
int foo()
{
}
int main()
{
typedef int(*func)();
func pfunc = foo;
int(*arrayFunc[10])();
arrayFunc[0] = foo;
return 0;
}
int(*arrayFunc[10])();
这句话可以这么理解:
我有一个数组,对其中的成员解引用后是一个函数名!