看板 C_and_CPP 關於我們 聯絡資訊
: #include<stdio.h> : #include<stdlib.h> : #define SIZE 10 : int w( const int b[], int p , int k ); : int main( void ){ : int x ; : int a[SIZE]={1,2,3,4,5,6,7,8,9,10}; : x = w( a , 0 , SIZE ); : printf( "\n" ); : system ( "pause" ); : return 0; : } : int w( const int b[] , int p , int k ){ : if( p < k ){ : w( b , p+1 , k ) ; : printf( "%d " , b[p] ); : } : } 第一次進去:w(a, 0, 10) k = 10, p = 0, p < k 做 w(b, 1, 10) 第二次進去:w(b, 1, 10) k = 10, p = 1, p < k 做 w(b, 2, 10) ..... ..... ..... 第十次進去:w(b, 9, 10) k = 10, p = 9, p < k 做 w(b, 10, 10) 第十一次進去:w(b, 10, 10) k = 10, p = 10, p == k(表p沒小於k) 做printf("%d", b[p]),接著return回上一個function 接著上一個function下一行也是接printf("%d", b[p]); 接著看p是多少,就印多少了 所以很明顯從10開始一路往回印,就是你所看到的倒著印了 -- 【一路說到掛】 ︻ 空谷殘聲 簫中劍 蕭無人 簫中劍 空谷殘聲 簫中劍 瘋狂兌現俠道精神 黃文擇拒絕再配音的武痴傳人 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.118.0.199