这个程序的功能是学会静态变量的操作(静态变量的有效范围是全局,所以在非主函数里修改是有效的),并用程序做一个修改前与修改后的对比。哪些地方有错,你对比下面的程序即可,此程序可以直接使用。
#include
void add(int n,int b[])
//int b[],n;
{
int i=0;
printf("\n");
for (i=0; i
printf("%d,",b[i]);
b[i]++;
}
}
void main()
{
int j;
static int a[]={0,1,2,3,4,5,6,7,8,9};
add(10,a);
printf("\n");
for(j=0;j<10;j++)
{
printf("%d,",a[j]);
}
printf("\n");
}
问题在这一句
b[ ]++;
功能没法解释,因为最主要的功能语句出错了,也就是b[ ]++; ,没法看出来
还有
add(b,n)
int b[],n;
你从哪淘换过来的代码,这么古老的函数定义方法,现在都不用了啊
错得离谱,
1 add 返回类型没有标注
2 int b[],n;应该在函数声明里
3 b[ ]++;哪有这么写的
4 static int a[]=(0,1,2,3,4,5,6,7,8,9); 应该是static int a[]={0,1,2,3,4,5,6,7,8,9};
你这是乱来啊,
变量声明都跑函数体外面去了,
B[]++根本就没有用,都已经B[I]了,还++做什么
而且函数定义两个参数,你调用就传一个,你自己好好检查吧