c语言 请问这个函数调用的时候,是把实参赋值给形参吗?就是a[][N]=a,n=3

2024-12-30 14:20:54
推荐回答(1个)
回答1:

void fun(int a[][N],int n){}
int a[N][N]={1,2,3,4,5,6,7,8,9};
fun(a,3); 这个调用 实际上是用 a 的首地址来调用 函数。它既把 int a[N][N];的元素们的值传入了函数,并能把函数加工后的值带回来。
例如:
#include
#define N 3
void fun(int a[][N],int n){
int i,j;
for(j=0;jprintf("\n");
a[0][0]=888; // 加工了1个元素
}
int main( )
{
int a[N][N]={1,2,3,4,5,6,7,8,9};
fun(a,3);
printf("After: %d %d ...",a[0][0],a[0][1]);
return 0;
}
传入函数: 1 2 3 4 5 6 7 8 9
调用过后 After: 888 2 ...