亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

來個大佬給我講一下

https://img1.sycdn.imooc.com//5c795ba00001631913590811.jpg


能看清圖吧。我這只有3個printf怎么會輸出4給數呢/看不懂了。 ? 還有我記得函數調用它下面的函數需要聲明的吧,為什么我試著把函數a和b調換位置也能出結果。 ?? 感謝

正在回答

4 回答

看了半天。。。b函數調用了兩次,a函數里printf函數調用一次b函數,同時返回值也是b函數,在這又調用一次,所以b函數調用了兩次,打印了兩次“18”。

第二個問題,調用函數時應該是從主函數外找對應的函數,愛仕達說法娃啊五號if橫掃的話發啊過,嗯就是這樣(我說的這么嚴肅你應該懂了吧)

1 回復 有任何疑惑可以回復我~

真秀


首先輸入數的是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次



0 回復 有任何疑惑可以回復我~
#1

qq_狗活_twEPQW 提問者

哦,return b(c)也會調用一遍b函數
2019-03-03 回復 有任何疑惑可以回復我~

剛剛刷題時突然意識到,第二個問題的答案。實際上執行程序時是從main函數開始執行,也就是說無論你的自定義函數之間怎么互相調用,在執行時一定時從main函數開始,那么你這些被調用的函數就是在main函數的上面,所以不需要聲明

0 回復 有任何疑惑可以回復我~

秀的我頭皮發麻

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

來個大佬給我講一下

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號