主题:请教一个关于以数组为参数的调用
我今天试着做数组做为参数的函数调用,写了个例程,有些问题,请指点。
请使用不带返回值的方式解决如下程序
/*
*将a[10]中的后7位付给b[]
*/
#include<stdio.h>
void select(int m[],int n[])
{
int k=0;
for(;k<10-3;k++)
{
n[k]=m[k+3];
}
}
int main()
{
int a[10]={0,1,2,3,4,5,6,7,8,9};
int b[10];
select(a,b);
for(int i=0;i<7;i++){
printf("%d\n",b);
}
return 0;
}
和以下程序比较
#include<stdio.h>
void add(int m,int n,int k)
{
k=m+n;
}
int main ()
{
int a=3;
int b=4;
int c;
add(a,b,c);
printf("%d",c);
return 0;
}
而下面的程序c的值被释放了,这个和上面的程序有什么区别?是不是因为一个是变量,而一个是地址的原因啊?
请使用不带返回值的方式解决如下程序
/*
*将a[10]中的后7位付给b[]
*/
#include<stdio.h>
void select(int m[],int n[])
{
int k=0;
for(;k<10-3;k++)
{
n[k]=m[k+3];
}
}
int main()
{
int a[10]={0,1,2,3,4,5,6,7,8,9};
int b[10];
select(a,b);
for(int i=0;i<7;i++){
printf("%d\n",b);
}
return 0;
}
和以下程序比较
#include<stdio.h>
void add(int m,int n,int k)
{
k=m+n;
}
int main ()
{
int a=3;
int b=4;
int c;
add(a,b,c);
printf("%d",c);
return 0;
}
而下面的程序c的值被释放了,这个和上面的程序有什么区别?是不是因为一个是变量,而一个是地址的原因啊?