调用函数返回数组
1、传递函数
#include<stdio.h>
#define maxn 4
void rink(int a[maxn])
{
for(int i=0;i<maxn;i++)
a[i]=a[i]+1;
}
int main()
{
int num[maxn]={4,6,7,8}
rink(num);
for(int i=0;i<maxn;i++)
printf("%d",num[i]);
return 0;
}
2、使用全局变量
#include<stdio.h>
#define maxn 4
int num[maxn]={4,6,7,8};
void rink()
{
for(int i=0;i<maxn;i++)
num[i]=num[i]+1;
}
int main()
{
rink();
for(int i=0;i<maxn;i++)
printf("%d",num[i]);
return 0;
}
3、使用静态变量
c语言不能返回一个局部变量,因为局部变量仅仅作用于本函数,函数调用结束,存储空间会被释放。除非加上static,变成静态变量
#include<stdio.h>
#define maxn 4
int num[maxn]={4,6,7,8};
int *rink()
{
static int b[maxn];//静态变量
for(int i=0;i<maxn;i++)
b[i]=num[i]+1;
return b;
}
int main()
{
int *shu;//定义指针
shu=rink();
for(int i=0;i<maxn;i++)
printf("%d ",shu[i]);
return 0;
}