#include<stdio.h>
#define size 6
void main(void)
{
int a[size]={1,1,1,1,1,1};
int *fun(int *,int);
for(int i=0;i<size;++i)
{
printf("%d\n",*(fun(a,size)+i));
}
}
int *fun(int *a,int n)
{
for(int i=0;i<n;++i)
{
*(a+i)+=5;
}
return(a);
}
结果为:
6 11 16 21 26 31
由于
for(int i=0;i<size;++i)
{
printf("%d\n",*(fun(a,size)+i));
}
调用6次*fun(),所以造成这样的结果。而改成:
int *p;
p=*fun(a,size);
for(int i=0;i<size;++i)
{
printf("%d\n",*(p+i));
}
编译时提示出错。
请问:
1、主函数中该怎么做,才不至于多次用*fun(),但又能输出数组各个元素的值?
2、改int *p; p=*fun(a,size);编译为什么通不过(我的编译器为vc++ 6.0)如果
要改,该怎么做?