|
|
发表于 2026-5-12 21:34:39
|
显示全部楼层
循环条件是 while(i<=4),i 从 0 到 4,共执行 5 次,逐次分析:
第 1 次循环:i=0
调用 exch(&x[0]),也就是把 x[0] 的地址传给 exch
在 exch 里:
t[0] 就是 x[0]
t[5] 就是 x[0+5] = x[5],值为 6
执行 t[0] = t[5]; → x[0] = 6
数组现在:{6, 2, 3, 4, 5, 6, 7, 8, 9, 10}
第 2 次循环:i=1
调用 exch(&x[1]),把 x[1] 的地址传给 exch
在 exch 里:
t[0] 就是 x[1]
t[5] 就是 x[1+5] = x[6],值为 7
执行 t[0] = t[5]; → x[1] = 7
数组现在:{6, 7, 3, 4, 5, 6, 7, 8, 9, 10}
第 3 次循环:i=2
调用 exch(&x[2]),把 x[2] 的地址传给 exch
在 exch 里:
t[0] 就是 x[2]
t[5] 就是 x[2+5] = x[7],值为 8
执行 t[0] = t[5]; → x[2] = 8
数组现在:{6, 7, 8, 4, 5, 6, 7, 8, 9, 10}
第 4 次循环:i=3
调用 exch(&x[3]),把 x[3] 的地址传给 exch
在 exch 里:
t[0] 就是 x[3]
t[5] 就是 x[3+5] = x[8],值为 9
执行 t[0] = t[5]; → x[3] = 9
数组现在:{6, 7, 8, 9, 5, 6, 7, 8, 9, 10}
第 5 次循环:i=4
调用 exch(&x[4]),把 x[4] 的地址传给 exch
在 exch 里:
t[0] 就是 x[4]
t[5] 就是 x[4+5] = x[9],值为 10
执行 t[0] = t[5]; → x[4] = 10
数组现在:{6, 7, 8, 9, 10, 6, 7, 8, 9, 10}
所以
- for(i=0;i<5;i++)
- {
- printf("%d\n",x[i]);
- }
复制代码
输出结果为
6
7
8
9
10 |
|