返回数组指针的函数和函数指针的数组

个人笔记-当做复习

数组指针:

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])();这句话可以这么理解:

我有一个数组,,对其中的成员解引用后是一个函数名!

版权声明:本文为博主原创文章,未经博主允许不得转载。

有勇气并不表示恐惧不存在,而是敢面对恐惧克服恐惧

返回数组指针的函数和函数指针的数组

相关文章:

你感兴趣的文章:

标签云: