C语言传参问题
//以下程序中被调函数返回值为空,那么不是应该不返回数组b的值给主调函数吗,为什么可以运行,下面代码中是如何传参数的?#include<stdio.h>
void main()
{
void mm();
int a,i;
for(i = 0;i < 12;i++)
{
scanf("%d",&a);
}
mm(a);
for(i = 0;i < 10;i++)
{
printf("%d",a);
}
}
void mm(int b[])
{
int max,max_i,i;
max = b,max_i = 0;
for(i = 1;i < 10;i++)
{
if(max<b)
{
max = b;max_i = i;
}
}
max = b;
b = b;
b=max;
return;
}
有结果的,
为了便于测试,稍微把你main函数的内容修整了下,框架没有改动 本帖最后由 major_lyu 于 2020-2-29 23:18 编辑
你定义的mm(int b[])传递进去的是一个数组的首地址,即内存地址。当调用函数mm(a)时, 函数mm中的数组b的存储空间和数组a是一样的,这样函数中数组b的元素b和main函数中数组元素a是存储在同一个内存单元上的,对b的操作就相当于对a进行了操作啊。 因为数组传参传的是指针。
页:
[1]