
function迴圈主要在做兩件事情,第一個for迴圈會先將傳入該function的陣列位址+2並取值後,結合原本的function進行後續的運作。
原本的array-
|
index |
0 |
1 |
2 |
3 |
4 |
|
value |
103 |
45 |
99 |
38 |
76 |
第一個for迴圈之後
|
index |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
|
value |
103 |
45 |
103 |
45 |
99 |
38 |
76 |
**38和76照理來說是不存在原本的array中的,因為這兩個值已經超出原本的array的範圍,但為了後續說明方便,還是列入陣列中**
第二個for迴圈會從超出array範圍的第一個值開始,只要array的範圍沒有超過array[2],那就會將超出array範圍的第一個值與經過第一個for迴圈的array之第一個值進行取代,直到p2的條件大於等於array[2]為止;因此其表示方式如下-
第一個for迴圈之後
|
index |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
|
value |
103 |
45 |
103 |
45 |
99 |
38 |
76 |
**同理如上**
第二個for迴圈之後
|
index |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
|
value |
38 |
76 |
103 |
45 |
99 |
38 |
76 |
在main中,第一個迴圈會將原本的array逐一進行輸出,第二個迴圈則是會將經過function之後的array進行輸出;故本題的結果如下-
103,45,99,38,76
38,76,103,45,99