函式包括了除函式名以外還有返回值和形參。
這個形參包括了傳入引數和傳出引數;
傳入引數:就是數值的傳遞。在函式中不會修改這個引數,不會修改呼叫這個函式的函式的值。
例如void exchange(int a,int b)
int main ()
輸出的結果是
a = 4;
b = 5;
這是傳參,僅僅是乙個數值的傳遞。
在呼叫exchange函式的時候,空間也分配了另乙個a,b變數名的空間,在exchange在呼叫完的時候,空間釋放。
exchange函式裡面的a,b和主函式裡面的啊a,b的空間是不一樣的。僅僅是名字一樣而已。
例子:這個村子你叫張三,隔壁的村子也有乙個叫張三。有一天隔壁的張三家裡面有喜事,而不是你家有喜事。
根本就是兩碼事。
傳出引數,一般傳遞的是位址。
例如上面這個例子,怎麼講a,b在exchange裡面改變呢。
void exchange(int *a,int *b)
這時候傳遞的變數的位址。在函式呼叫的時候也是建立顯得空間,只不過這片空間記載的是實參的位址。
正真在執行的時候通過位址找到實參的空間,將裡面的數值改變。
還是上面張三為例。有喜事那家發出請柬,標明哪個村的張三家。那麼去赴宴的人,按照家的位址去赴宴。
在需要改變指標變數的時候,需要傳入的是指標的指標,也就是指標變數那片空間的位址。
乙個函式如何返回多個值:
1.就是利用傳出引數,來記載返回值。
2.返回乙個陣列。
3.返回乙個結構體
通過形參獲得函式返回值的問題
我們經常會用到將乙個引數在函式外部初始化,然後傳入函式,函式給引數賦值後,我們在函式外部使用這個值,最開始學習c 的時候我們就知道這需要將引數以引用的方式傳入,卻沒有更深層次的考慮這個方法的原因,為什麼傳指標就不行呢?其實這個問題更深層次的原因是形參也是乙個變數,我們在將乙個初始化好的引數傳入函式時...
函式的引數 形參實參 及返回值
函式的引數有形參和實參 形參就是函式宣告時需要接受的引數,可以理解成暫時的佔位符,並無實際意義。實參就是呼叫函式時傳遞進函式的具體的實際資料,也就是給佔替代位符的的值。函式體內部的return語句 表示將資料返回給呼叫者。return後面即使有語句,也不會執行,也就是return後面不執行.retu...
C 中const修飾函式形參,函式,函式返回值
在程式設計中我們會經常呼叫函式,呼叫函式就會涉及引數的問題,那麼在形參列表中const形參與非const形參對傳遞過來的實參有什麼要求呢?先來看乙個簡單的例子 cpp view plain copy include include using namespace std void print str...