这一题怎么做啊!!
#include #define N 8
void fun(int *x,int i)
{*x=*(x+i);}
void main()
{int a[N]={1,2,3,4,5,6,7,8},i;
fun(a,2);
for(i=O;i<N/2;i++)
{printf("%d",a[i]);}
printf("\n");
}
程序运行后的输出结果是
A)1313
B)2234
C)3234
D)1234
这一题怎么做啊!!详细讲解一下吧!!









,首先fun(a,2)是传址调用,会改变原参数的值!这懂吧?不懂的话翻番书哦!然后*(x+i)相当于a[2],*x相当于a[0];则*x=*(x+i)就是把a[2]的值赋给a[0];因为是传址调用故a[0]的值会改变为3,然后就是for循环输出了!所以是 3234
