一道程序編譯順序的考題,涉及到函數調用的先后順序及運算符號的優先級等問題。下面我展開給你講。
C的程序編譯總是從main函數開始的,這道題的重點在“fun((int)fun(a+c,b),a-c)) ”語句。
系統首先要確定最外層 fun()函數的實參,第一個參數的確定需要遞歸調用fun()函數(不妨稱其為內層函數)。內層函數的兩個參數分別為x=a+b=2+8=10、y=b=5,執行函數體x+y=10+5=15,于是得外層函數的參數x=15。其另一個參數y=a-c=2-b=-6,再次執行函數體,得最終返回值x+y=15+(-6)=9。
標簽:
程序編譯
上傳時間:
2014-12-03
上傳用戶:徐孺