Re: [問題] 輸出的值

看板C_and_CPP (C/C++)作者 (石斛蘭)時間16年前 (2008/06/21 12:28), 編輯推噓8(800)
留言8則, 8人參與, 最新討論串1/1
考慮少一點 char aa[] = "ABC"; 的情況 call main() ┌────────┐ │main() │ │{ │ │ reverse(); │ │ │ │ │ └────────┘ call reverse() ┌────────┐ │main() │ │{ │ │ ┌───────────────────┐ │ │reverse() │ │ │{ │ │ │ char ca; │ └─│ if ( (ca = aa[++in_i]) != '\0' ) { │//in_i = 0 , ca = 'A' │ reverse(); │ │ │ └───────────────────┘ call reverse() ┌────────┐ │main() │ │{ │ │ ┌───────────────────┐ │ │reverse() │ │ │{ │ │ │ char ca; │ └─│ if ( (ca = aa[++in_i]) != '\0' ) { │//in_i = 0 , ca = 'A' │ ┌───────────────────┐ │ │reverse() │ └──│{ │ │ char ca; │ │ if ( (ca = aa[++in_i]) != '\0' ) { │//in_i = 1 , ca = 'B' │ reverse(); │ │ │ └───────────────────┘ call reverse() ┌────────┐ │main() │ │{ │ │ ┌───────────────────┐ │ │reverse() │ │ │{ │ │ │ char ca; │ └─│ if ( (ca = aa[++in_i]) != '\0' ) { │//in_i = 0 , ca = 'A' │ ┌───────────────────┐ │ │reverse() │ └──│{ │ │ char ca; │ │ if ( (ca = aa[++in_i]) != '\0' ) { │//in_i = 1 , ca = 'B' │ ┌───────────────────┐ │ │{ │ └──│ char ca; │ │ if ( (ca = aa[++in_i]) != '\0' ) { │// in_i = 2 │ reverse(); │// ca = 'C' │ │ └───────────────────┘ call reverse() ┌────────┐ │main() │ │{ │ │ ┌───────────────────┐ │ │reverse() │ │ │{ │ │ │ char ca; │ └─│ if ( (ca = aa[++in_i]) != '\0' ) { │//in_i = 0 , ca = 'A' │ ┌───────────────────┐ │ │reverse() │ └──│{ │ │ char ca; │ │ if ( (ca = aa[++in_i]) != '\0' ) { │//in_i = 1 , ca = 'B' │ ┌───────────────────┐ │ │reverse() │ └──│{ │ │ char ca; │// in_i = 2 │ if ( (ca = aa[++in_i]) != '\0' ) { │// ca = 'C' │ ┌───────────────────┐ │ │reverse() │ └──│{ │ │ char ca; │ /*in_i = 3,ca = '\0'*/│ if ( (ca = aa[++in_i]) != '\0' ) { │ │ reverse(); │ │ printf("%c", ca); │ │ } /* 上面這兩行,並沒有被執行 */ │ │} /* 因為 ca == '\0' is true */ │ └───────────────────┘ leave reverse() ┌────────┐ │main() │ │{ │ │ ┌───────────────────┐ │ │reverse() │ │ │{ │ │ │ char ca; │ └─│ if ( (ca = aa[++in_i]) != '\0' ) { │//in_i = 0 , ca = 'A' │ ┌───────────────────┐ │ │reverse() │ └──│{ │ │ char ca; │ │ if ( (ca = aa[++in_i]) != '\0' ) { │//in_i = 1 , ca = 'B' │ ┌───────────────────┐ │ │reverse() │ └──│{ │ │ char ca; │ │ if ( (ca = aa[++in_i]) != '\0' ) { │//in_i = 2 │ ; /* reverse() */ │ │ printf("%c", ca); /* print 'C' */ │//ca = 'C' │ } │ │} │ └───────────────────┘ leave reverse() ┌────────┐ │main() │ │{ │ │ ┌───────────────────┐ │ │reverse() │ │ │{ │ │ │ char ca; │ └─│ if ( (ca = aa[++in_i]) != '\0' ) { │//in_i = 0 , ca = 'A' │ ┌───────────────────┐ │ │reverse() │ └──│{ │ │ char ca; │ │ if ( (ca = aa[++in_i]) != '\0' ) { │//in_i = 1 , ca = 'B' │ ; /* reverse() */ │ │ printf("%c", ca); /* print 'B' */ │ │ } │ │} │ └───────────────────┘ leave reverse() ┌────────┐ │main() │ │{ │ │ ┌───────────────────┐ │ │reverse() │ │ │{ │ │ │ char ca; │ └─│ if ( (ca = aa[++in_i]) != '\0' ) { │//in_i = 0 , ca = 'A' │ ; /* reverse() */ │ │ printf("%c", ca); /* print 'A' */ │ │ } │ │} │ └───────────────────┘ leave reverse() ┌──────────┐ │main() │ │{ │ │ ; /* reverse() */ │ │ printf("\n"); │ │ │ │ │ └──────────┘ 所以他就會從後面開始印囉 謝謝收看 有錯煩請指正, 感謝你! -- 貓 http://www.onlypet.com.tw/dendrobium -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.116.12.212 ※ 編輯: dendrobium 來自: 59.116.12.212 (06/21 12:32) ※ 編輯: dendrobium 來自: 59.116.12.212 (06/21 12:36)

06/21 13:29, , 1F
推一個圖解!
06/21 13:29, 1F

06/21 13:57, , 2F
推一下
06/21 13:57, 2F

06/21 14:09, , 3F
好棒的圖解@@
06/21 14:09, 3F

06/21 15:16, , 4F
好精美的圖解@@
06/21 15:16, 4F

06/21 15:39, , 5F
詳細的圖解@@
06/21 15:39, 5F

06/21 16:38, , 6F
厲害的圖解@@
06/21 16:38, 6F

06/21 18:54, , 7F
超強的圖解@@
06/21 18:54, 7F

06/22 17:28, , 8F
用心的圖解@@
06/22 17:28, 8F
文章代碼(AID): #18N8E1uh (C_and_CPP)
文章代碼(AID): #18N8E1uh (C_and_CPP)