C语言问题,给出下面程序的运行结果,并解释其原因:

#include <stdio.h>

void Func(int b[])
{
int j;

for (j=0; j<4; j++)
{
b[j] = j;
}
}

main()
{
static int a[] = {5, 6, 7, 8}, i;

Func(a);

for (i=0; i<4; i++)
{
printf("%d ", a[i]);
}
printf("\n");
}

第1个回答  2009-12-04
5
6
7
8
static 定义的是静态变量,而程序中Func(a);没有返回值,对于主函数不影响起本所定义的变量,所以就根据循环直接输出数组a[]中的四个数字,而且每输出一次,回车换行一次。最后结果如上所示。
第2个回答  2009-12-04
0,1,2,3
以数组为参数传递的时候是地址传递的,所以不会复制一个副本
因此 for (j=0; j<4; j++)
{
b[j] = j;
}
直接改变了数组a 里面的内容
第3个回答  2009-12-04
0 1 2 3
static定义了一个静态变量,它的值一直会保存在内存中。本回答被网友采纳
第4个回答  2009-12-04
5 6 7 8
a【】为静态变量,值不会改变
相似回答