課程
/后端開發
/C
/C語言入門
能看清圖吧。我這只有3個printf怎么會輸出4給數呢/看不懂了。 ? 還有我記得函數調用它下面的函數需要聲明的吧,為什么我試著把函數a和b調換位置也能出結果。 ?? 感謝
2019-03-02
源自:C語言入門 1-2
正在回答
看了半天。。。b函數調用了兩次,a函數里printf函數調用一次b函數,同時返回值也是b函數,在這又調用一次,所以b函數調用了兩次,打印了兩次“18”。
第二個問題,調用函數時應該是從主函數外找對應的函數,愛仕達說法娃啊五號if橫掃的話發啊過,嗯就是這樣(我說的這么嚴肅你應該懂了吧)
真秀
首先輸入數的是5
應該輸出a(5)
由于不知道a()函數,所以先跳到a()函數
繼續5,應該輸出b(5)
由于不知道b()函數,先跳到b()函數
繼續還是5
先輸出5+13,也就是18
..............................
然后返回5+2,也就是7
b()函數返回的7是a()函數應該輸出的
也就是輸出7
...........................
由于之前傳遞給b()函數的c=5,而數字5是在b()函數中改變的
所以對于a()函數來說并沒什么卵用
在a()函數里c的值沒有改變
所以a()函數里,c還是5
接著返回b(5)
又回到b()函數了,帶來的還是5,
于是先輸出5+13,也就是18
.................................
然后這個數是由a()函數中的return b(c)提供的
已經沒有后續步驟了,所以7作為最后一個數返回a(e)
也就是最后a(e)=7,然后輸出7+1,也就是8
所以總的輸出了4次
qq_狗活_twEPQW 提問者
剛剛刷題時突然意識到,第二個問題的答案。實際上執行程序時是從main函數開始執行,也就是說無論你的自定義函數之間怎么互相調用,在執行時一定時從main函數開始,那么你這些被調用的函數就是在main函數的上面,所以不需要聲明
秀的我頭皮發麻
舉報
C語言入門視頻教程,帶你進入編程世界的必修課-C語言
3 回答大佬們快給我講講為啥
1 回答來個大佬給我解釋解釋 謝謝
1 回答請大佬給講講這節課例題
1 回答不是很懂這個程序,請問有大佬路過給我講解一下么?
1 回答求大佬給我解答一下,本人菜鳥
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2019-03-02
看了半天。。。b函數調用了兩次,a函數里printf函數調用一次b函數,同時返回值也是b函數,在這又調用一次,所以b函數調用了兩次,打印了兩次“18”。
第二個問題,調用函數時應該是從主函數外找對應的函數,愛仕達說法娃啊五號if橫掃的話發啊過,嗯就是這樣(我說的這么嚴肅你應該懂了吧)
2019-03-02
真秀
首先輸入數的是5
應該輸出a(5)
由于不知道a()函數,所以先跳到a()函數
繼續5,應該輸出b(5)
由于不知道b()函數,先跳到b()函數
繼續還是5
先輸出5+13,也就是18
..............................
然后返回5+2,也就是7
b()函數返回的7是a()函數應該輸出的
也就是輸出7
...........................
由于之前傳遞給b()函數的c=5,而數字5是在b()函數中改變的
所以對于a()函數來說并沒什么卵用
在a()函數里c的值沒有改變
所以a()函數里,c還是5
接著返回b(5)
又回到b()函數了,帶來的還是5,
于是先輸出5+13,也就是18
.................................
然后返回5+2,也就是7
然后這個數是由a()函數中的return b(c)提供的
已經沒有后續步驟了,所以7作為最后一個數返回a(e)
也就是最后a(e)=7,然后輸出7+1,也就是8
..............................
所以總的輸出了4次
2019-03-02
剛剛刷題時突然意識到,第二個問題的答案。實際上執行程序時是從main函數開始執行,也就是說無論你的自定義函數之間怎么互相調用,在執行時一定時從main函數開始,那么你這些被調用的函數就是在main函數的上面,所以不需要聲明
2019-03-02
秀的我頭皮發麻