正如指向数组的指针可以传递给函数一样,指向数组的指针也可以返回,如下程序所示:
int * get_evens();
int main() {
    int *a;
    int k;
    a = get_evens(); /* 得到前5个偶数 */
    for (k = 0; k < 5; k++)
    printf("%d\n", a[k]); 
    return 0;
}
int * get_evens() {
    static int nums[5];
    int k;
    int even = 0;
    for (k = 0; k < 5; k++) {
    nums[k] = even += 2;
    }
    return (nums);
}
请注意,声明指针而不是数组来存储函数返回的值。还要注意,当从函数中传递局部变量时,需要在函数中将其声明为静态的。
记住a[k]与*(a+k)是相同的。