c语言函数题
#include<stdio.h>
#include<stdlib.h>
#define N 5
void fun (int a[][N])
{
int i,j;
for(i=0;i<N;i++)
for(j=0;j<N;j++)
{
if(i>=j)
a[i][j]=0;
}
}
main ()
{ int a[N][N], i, j;
printf("***** The array ***** ");
for (i =0; i<N; i++)
{for (j =0; j<N; j++)
{a[i][j] = rand()%10; printf("%4d", a[i][j]);}
printf(" ");
}
fun (a);
printf ("THE RESULT ");
for (i =0; i<N; i++)
{for (j =0; j<N; j++) printf("%4d", a[i][j]);
printf(" ");
}
}
之前我考了二级就没关注了,这学期帮刚学的高中同学做题的时候发现,这道题我不用指针居然也可以改变主函数里a【i】【j】的值并且得出正确答案,这是为什么?
这个是C的常识啊,C的数组参数就是指针,用一维数组可能更能帮你理解
void test(int *a)
{
a[0]=1;
}
void test1(int a[])
{
a[0]=1;
}
它们是完全等价的,且都可以改变传过来数组a[0]的值
上一篇:未能完成安装
热门标签: