代码帮你改好了 调用函数时 形参实参都是数组 所以只是传递首地址(就是shuzu)就可以了 不用返回 因为改动地址存放的值 原来数组的值也是一起改动的关于递归 就是在函数中反复使用这个函数 #include <stdioh>
void diaoyong(int b[]);
void main()
{
int a;
int shuzu[5]={53,56,69,35,53};
diaoyong(shuzu);for(a=0;a<5;a++)
printf("%4d",shuzu[a]);
}
void diaoyong(int b[])
{
int a;
for(a=0;a<5;a++)
b[a]+=1;
}
可以将主函数中的数组以形参的形式传入自定义函数即可。
#include<stdioh>void output(int a, int length);
void process(int a, int length);
void main()
{
int a[10] = {0};
int i;
/
output the content of the current array
/
output(a,10);
/
process the array
/
process(a, 10);
/
output the content of the processed array
/
output(a, 10);
}
void output(int a, int length)
{
int i;
for(i = 0; i < length; i++)
{
printf("%d ",a[i]);
}
printf("\n");
}
void process(int a, int length)
{
int i ;
for(i = 0; i < length; i++)
{
a[i] = i + 1;
}
}
#include<stdioh>
// 用于修改数组的函数
int change_array(int num, int count)
{
int i,t;
for(i = 0; i < count; i++)
{
t = num[i];
num[i] = t + 1;
}
}
int main()
{
int i, b[10] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
// 调用函数
change_array(b, 10);
// 输出结果
for(i = 0; i < 10; ++i)
{
printf("%d ", b[i]);
}
}
首先这样的作法是没有意义的,因为当函数返回之后,函数原始空间中的数组和变量是临时的,都会被自动清除和释放。如果需要通过函数将改变的结果传回,可以使用指针。 void shuru(int p,int a[]){ p = 123; int b[10]={1,2,3,4,5,4,6,7}; for
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)