C語(yǔ)言函數(shù)的調(diào)用與參數(shù)

字號(hào):

如果一個(gè)函數(shù)要使用參數(shù),它就必須定義接受參數(shù)值的變量。
    4.3.1 形式參數(shù)與實(shí)際參數(shù)
    函數(shù)定義時(shí)填入的參數(shù)我們稱(chēng)之為形式參數(shù),簡(jiǎn)稱(chēng)形參,它們同函數(shù)內(nèi)部的局部變量作用相同。形參的定義是在函數(shù)名之后和函數(shù)開(kāi)始的花括號(hào)之前。
    調(diào)用時(shí)填入的參數(shù),我們稱(chēng)之為實(shí)際參數(shù),簡(jiǎn)稱(chēng)實(shí)參。
    必須確認(rèn)所定義的形參與調(diào)用函數(shù)的實(shí)際參數(shù)類(lèi)型一致,同時(shí)還要保證在調(diào)用時(shí)形參與實(shí)參的個(gè)數(shù)出現(xiàn)的次序也要一一對(duì)應(yīng)。如果不一致,將產(chǎn)生意料不到的結(jié)果。與許多其它高級(jí)語(yǔ)言不同,(是健壯的,它總要做一些甚至你不希望的事情,幾乎沒(méi)有運(yùn)行時(shí)錯(cuò)誤檢查,完
    全沒(méi)有范圍檢測(cè)。作為程序員,必須小心行事以保證不發(fā)生錯(cuò)誤,安全運(yùn)行。來(lái)源:www.examda.com
    4.3.2 賦值調(diào)用與引用調(diào)用
    一般說(shuō)來(lái),有兩種方法可以把參數(shù)傳遞給函數(shù)。第一種叫做“賦值調(diào)用”(call by value),這種方法是把參數(shù)的值復(fù)制到函數(shù)的形式參數(shù)中。這樣,函數(shù)中的形式參數(shù)的任何變化不會(huì)影響到調(diào)用時(shí)所使用的變量。
    把參數(shù)傳遞給函數(shù)的第二種方法是“引用調(diào)用”(call by reference)。這種方法是把參數(shù)的地址復(fù)制給形式參數(shù),在函數(shù)中,這個(gè)地址用來(lái)訪問(wèn)調(diào)用中所使用的實(shí)際參數(shù)。這意味著,形式參數(shù)的變化會(huì)影響調(diào)用時(shí)所使用的那個(gè)變量(詳細(xì)內(nèi)容請(qǐng)參見(jiàn)后續(xù)章節(jié))。
    除少數(shù)情況外,C語(yǔ)言使用賦值調(diào)用來(lái)傳遞參數(shù)。這意味著,一般不能改變調(diào)用時(shí)所用變量的值。請(qǐng)看例4 - 9。
    在這個(gè)例子里,傳遞給函數(shù)sqr( )的參數(shù)值是復(fù)制給形式參數(shù)x的,當(dāng)賦值語(yǔ)句x = x * x執(zhí)行時(shí),僅修改局部變量x。用于調(diào)用sqr ( )的變量t,仍然保持著值10。
    執(zhí)行程序:
    RUN
    100 10
    切記,傳給函數(shù)的只是參數(shù)值的復(fù)制品。所有發(fā)生在函數(shù)內(nèi)部的變化均無(wú)法影響調(diào)用時(shí)使用的變量。