哪位c高手能解释下这个程序吗!要细细的过程!谢谢啦!

来源:百度知道 编辑:UC知道 时间:2024/09/24 02:03:32
#include<stdio.h>
void fun(int *a)
( a[0]=a[1]; )
void main()
{
int a[10]={10,9,8,7,6,5,4,3,2,1},i;
for(i=2;i>=0;i--) fun(&a[i]);
for(i=0;i<10;) printf("%d",a[i]);
printf("\n");
}
答案是!7777654321

void fun(int *a)
{
a[0]=a[1];
}
void main()
{
int a[10]={10,9,8,7,6,5,4,3,2,1},i;

for(i=2;i>=0;i--)
fun(&a[i]);

for(i=0;i<10;i++)
printf("%d",a[i]);

printf("\n");
}

fun的作用是把传入的整形指针所指向的存储区赋值成该指针++后所指区域的数值
fun(&a[2]) ==> a[2] = a[3] = 7
fun(&a[1]) ==> a[1] = a[2] = 7
fun(&a[0]) ==> a[0] = a[1] = 7

结果:
7777654321