#include <stdio.h> int a[2] = {1, 2}; //仍全局 int *xxx() { return a; } int main() { printf("%d %d\n", *xxx(), *((xxx)()+1)); return 0; } 试了一下,感觉告诉我不行,如果试图用数组来返回,但是函数中的局部变量存放在stack中,函数执行完成之后会自动释放,因此将局部变量的指针作为返回值行不通!
#include<stdio.h> void h(int _p[20]) { _p[0]=2;_p[1]=2; } main() { int p[20]={0}; h(p); printf("%d\t%d\n",p[0],p[1]); }