一直以为函数返回一个指向数组的指针简单,今天在论坛上看到别人的提问的帖子才引起我的思考,原来并不是我所想象的那样
(int *)[4] function();
正确的声明是这样的
int (*function())[4];
这样才表示一个返回类型为指向4个成员的整型数组的指针函数。这个函数的具体实现。
#include<stdio.h>
//给每个成员的值都+1
int (*fun(int (*ptr)[4]))[4]
{
int i;
int (*p)[4];
p= ptr;
for(i =0; i<4; i++)
(*p[i])++;
return p;
}
int main(void)
{
int a[4] ={2,5,3,6};
printf("%d\n",**fun(&a));
return 0;
}