關於C 函式呼叫(返回)傳值的思考!

2021-07-24 13:47:07 字數 948 閱讀 3211

今天做了一道題,不能使用全域性變數,main函式不能改變,只能改變呼叫函式,也用不了指標,所以想了許久,查詢了許多資料,把過去知道的引用實踐了。

返回值只能返回乙個值,但是需要的值可能需要有多了,那麼我們就需要有傳值,怎麼把值傳遞到該去的位置,有三個辦法。值傳遞,指標傳遞,引用傳遞。

1.值傳遞,就是main函式上的值沒有變化,但是是在呼叫函式上的值的變化,與主函式上無關。就是呼叫函式已經把主函式上的值 做好了。

int fun(int a,int b)

2.指標傳遞,意思就是有另乙個名字(新的東西)指向了原先想要改變的那個值,呼叫函式中,如果指標變化了,想要改變的那個值也一樣會改變,同樣在主函式是一樣的,乙個位址上的值改變了,指標會變,原先的定義的名字的值也會變。等於有個東西有倆個名字,常用的大名,不常有的小名,把乙個名字指向的人變了,另乙個名字也是被換了。

int fun(int *p, int *q)

int main()

3.我感覺今天我實踐的引用傳遞也是很重要,我開始喜歡上的這個辦法。大概意思就是呼叫函式上的值變了,同樣和指標差不多的是,main上的值也會變。

int fun(int &a,int &b)

int main()

呼叫函式的命名和主函式上的命名無關,即使是全域性變數和區域性變數一樣,也是優先區域性變數,所以每個函式的命名使用只在那乙個限制的範圍內!

關於更詳細的資料的公式化的介紹:

本文主要是自己對關於值傳遞的學習。

C 函式傳值呼叫

c 的函式的引數呼叫是傳值方式。想要改變傳值呼叫,有引用和指標兩種方式。其中,引用的實現機理也是通過乙個指標,但是具體和指標傳值的方式又不一樣。具體見 c 中的指標與引用 對於指標傳值,其實實際上也是乙個值傳遞,只是這個值是位址。所以在函式中改變 p的值,相應的呼叫函式的值也會改變。但是最近在做一點...

關於函式傳參及返回值

很多剛學指標的人多會遇到這樣的情況,就是你給乙個函式傳遞乙個指標變數,在這個函式中為這個指標申請空 間,賦值,可是等函式結束後這個指標還是乙個空指標,對其的操作編譯器會報段錯誤或乾脆給你乙個莫名其妙的值,這是乙個隨機數。如 include include int my fun int p int m...

C 函式的傳值呼叫 指標呼叫 引用呼叫

該方法把引數的實際值複製給函式的形式引數。在這種情況下,修改函式內的形式引數對實際引數沒有影響。include using namespace std 函式宣告 void swap int x,int y int main 函式定義 void swap int x,int y 呼叫函式的時候,在函式...