K&R 《C程式設計語言》 中文版第2版,第36頁第3段:
“由于函式呼叫的引數是運算式,所以在把引數傳遞給函式時也可能進行型別轉換“
為什么說呼叫的引數是運算式?
比如 F(10) 這里的實參10不過是個直接量,為啥書上稱作運算式?
uj5u.com熱心網友回復:
MSDN98_1.ISO http://pan.baidu.com/s/1dDF41ix, MSDN98_2.ISO http://pan.baidu.com/s/1bnGo0Vl
uj5u.com熱心網友回復:
10 你想說立即數吧?那立即數也是運算式沒毛病
uj5u.com熱心網友回復:
比如定義函式void Func(int x),只接受int型別的變數,但是呼叫時傳入Func(10+0.2),會將10+0.2的結果(double型別)自動轉換成int型別。這里10+0.2其實就是運算式,所以說“函式呼叫的引數是運算式”沒有問題。
這句話的重點應該是“在把引數傳遞給函式時也可能進行型別轉換”,重點理解這句就對了。
uj5u.com熱心網友回復:
建議樓主確定一下運算式的定義。找一下運算式的定義。F(10)這里的10按照什么型別,char, unsigned char, int, unsigned int都能表示10這個數,那么它是int,因為默認是按照int處理的。那么這是第一步,第二步還要看函式F的形參,它是什么型別,如果是char,那么如果這個實參是129,那么可能就會被截斷。
這就是“把引數傳遞給函式時也可能進行型別轉換”這句話的理解~
uj5u.com熱心網友回復:
運算式是個含義很廣的概念。說一臺全自動的...的洗衣機是個equipment也對吧?
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/248223.html
標籤:C語言
