[问题] 请问指标的宣告...

楼主: HowLeeHi (处处留心皆正妹)   2016-12-21 14:07:30
开发平台(Platform): (Ex: Win10, Linux, ...)
Linux
编译器(Ex: GCC, clang, VC++...)+目标环境(跟开发平台不同的话需列出)
GCC
额外使用到的函数库(Library Used): (Ex: OpenGL, ...)
问题(Question):
Hi, all
在网络上看到一个特殊的指标宣告
int (*p())[4];
但我没办法理解是什么意思
原本是想说宣告一个function pointer阵列,有4个元素
每个元素可以去指向其它function
但code写起来又没办法编译
看不懂这个宣告是什么意思...
作者: stupid0319 (征女友)   2016-12-21 14:23:00
4个fun pointer? int fun(void); p[0]=fun;是这样吗?
作者: Sidney0503 (Sidney0503)   2016-12-21 14:29:00
不是喔 如果是function pointer要这样宣告int((*p)()) ;int (*p())[4]; 是function的宣告可在里面宣告int array[4]; 然后回传 &array抱歉这样说是错的 拿到array会不能使用wwwww
作者: cutekid (可爱小孩子)   2016-12-21 14:57:00
function 里面回传一个在 data segment 或 heap 的位址然后用 int(*)[4] 来解读这个位址
作者: boss0405 (boss)   2016-12-21 17:38:00
此function回传一个指标,指标类型为大小为4的int阵列不过那个4顶多是让写code的人知道回传类型,因为回传是pointer所以也不会知道阵列大小
作者: salavida (席阿)   2016-12-21 19:37:00
#1EkLIycp 可以看一下这篇
作者: kilva (嗡嗡)   2016-12-21 22:45:00
int (*p[4])(); 4个函式指标阵列的宣告
作者: lsc36 (lsc36)   2016-12-22 09:13:00

Links booklink

Contact Us: admin [ a t ] ucptt.com