關於函式的返回值與引數的問題

2025-05-26 06:50:18 字數 3093 閱讀 6310

1樓:伊博辰龍

關於函式的返回值與引數的問題解吵隱如答如下:

1、當使用指標做為攜困函式的返回值時,主函式處的char *p;將公升啟獲得呼叫函式char *pf;的值,即乙個位址值,如oxae72。此時需要我們注意的是該位址值所指向的空間是否存在(即已向作業系統宣告註冊,不會被釋放,即可能被其他操作修改);

2、使用棧記憶體返回指標是明顯錯誤的,因為棧記憶體將在呼叫結束後自動釋放,從而主函式使用該位址空間將很危險。

3、使用堆記憶體返回指標是正確的,但是注意可能產生記憶體洩露問題,在使用完畢後主函式中釋放該段記憶體。

2樓:網友

1,為什麼有的函式不需要返回值,有的卻需要?什麼時租悶候需要,什麼時候不需要?

如果你寫的函式只是完成一些處理,而不需要得到處理後的結果就不需要返回值了,比如寫個函式用於向資料庫寫入一條記錄或向乙個文字寫入一些內容,當然實踐中做這些事還是需要返回值的,因為我們需要知道這個記錄有沒有寫入成功(成功返回真,失敗返回假),這個內容有沒有成功地寫入乙個文字檔案。

所以有的需要返回值,有的不需要。什麼時候需要什麼時候不需昌簡要得看具體的情況來定。

2,為什麼有的函式不需要引數,有的卻需要?什麼時候需要,什麼時候不需要?

需要引數是因為函式內的操作需要具體的計算物件(引數值),比如你有個計算長方形面積的函式:getarea(float w,float h),這個計算面積的函式能得到所有大大小小的長方形面積,但我們具體計算時長與寬是不確定的,所以就需要把長與寬作為引數傳入函式內處理而得到長方形的面積(同上問題,這時就需要有返回值了,即長方形的面積),如長為:5,寬為:

2,float area = getarea(,我文筆不行,亂耐型褲七八糟地說了一通,不知道能不能幫到你。

3樓:網友

關於引數陪殲則和返回值:

要說明這2個東西的作用,首先要弄清楚函式的作用。根據我的理解(會好理解一點),函式根據目的分為兩大類:1.計算類函式 2.功能型函式 3.混合類。

1.計算類函式:顧名思義,這種函式的存在是為了某些計算而存在。比如:(最常見的加法)

我的目的是根據幾個數字,算出他們的和。這時候你要計算的數字就需要通過【引數(傳到函式內部)】,而【和(則是通過返回值)得到】。計算類的函式一蘆棚般都要引數和返回值。

2.功能性函式:這類函式是完成某些特定功能。

比如:清空所有介面資訊,這時候,如果介面的控制項是固定的,只要將他們的值清空就行。由於【需要的東西是固定的】,就可以不要引數來傳遞。

當然,也不要返回任何結果。

3.*混合型:這是現實中最多的情況。引數和返回值的判定要求也不固定。單都遵循這樣乙個原則。

函式內部需要外部的資料是,一般改慧要通過引數傳遞。

函式外部需要內部的資料時,一般要通過返回值傳遞。

4樓:網友

簡單來說:如果你想直接拿到函式執行的結果,那麼就要返回穗鎮值。

第二個,如果尺姿你知道你要處理什麼,處理的條件去哪兒取就不一定非得猜困粗要引數,有引數只是為了執行可變的情況。

5樓:網友

這個是根據你需要來定的,比如說你有許多人的簡歷資料,你想查某人的**,你首先要知道他的姓名,然後才能查到**,如果寫成函式的話,就是要乙個姓名作為參猜族散數,而函式中根據姓名查出的穗昌**就作為返回值了。

這個問題其實不算問題的,實際應用中你會很快知道穗氏哪些要引數,哪些不要,決定不了的話,那就說明可有可無,就不用要引數了。

函式返回值指的是什麼?

6樓:小耳朵愛聊車

函式返回值的意思是將函式實現的結果返回給呼叫者。

按標準來說,c的main函式是需要有返回值的。標準中main函式返回型別是int的,所以需要乙個返回值。但是由於歷史原因,很多地方可以看到沒有返回值的main。

比如直接main()或者說void main() 但是這樣一般編譯器也不會認為錯誤,不過建議還是寫標準的c的main函式,最好有乙個返回值,0表示正常退出。

返回值的概念是什麼?

7樓:思科網俠

返回值 就是通過程式計算之後的到結果,也是函式實現返回最終的結果。

函式(方法)一般分為有返回值和無返回值,無返回值實現功能最終不返回結果,有返回值的,最終返回該函式的計算結果。

函式返回值的型別是由什麼決定的?

8樓:金牆刺紗腰

c語言規定,函式返回值的型別由函式首部定義的型別決定。函式返回值應與首部定義的型別一致,如若不一致,則自動將返回值強制轉換為函式首部定義的型別。

沒有定義型別時預設為int型。也就是說你的函式是什麼型別,返回值就是什麼型別。

簡介。在呼叫函式時,如果需要從被調函式返回乙個值供主調函式使用,那麼返回值型別必須定義成非 void 型。此時被調函式中必須包含 return 語句,而且 return 後面必須要有返回值,否則就是語法錯誤。

乙個函式中可以有多個 return 語句,但並不是所有的 return 語句都起作用。執行到哪個 return 語句,就是哪個 return 語句起作用,該 return 語句後的其他語句都不會執行。

什麼是函式返回值?

9樓:信必鑫服務平臺

函式返回值就是你所呼叫的函式返回給你的值。比如說void fun(int n,int m);前面的void就說明這個函式是沒返回值的。比如int fun(int m);時,這個函式執行以後要返回乙個整型數。

一、一般的情況,c語言預設的返回值的型別是int整形,其他的函式看其函式前的型別就可以知道這個函式的返回值是什麼型別,返回值是函式在被呼叫之後根據其傳入的引數來進行運算從而獲得乙個最終的值,這值稱函式的返回值。

二、乙個函式的函式名既是該函式的代表,也是乙個變數。由於函式名變數通常用來把函式的處理結果資料帶回給呼叫函式,即遞迴呼叫,所以一般把函式名變數稱為返回值。

三、函式可以有返回值,只要 return 就可以給出乙個。不過人們常常不用它,有兩個原因:

1、c/c++裡返回值是複製出去的,而對於大的物件,複製的代價很高;

2、有些物件是不能複製的--至少編譯器不知道怎麼複製--比如陣列。

關於C 函式返回值的問題,C 函式返回值問題

include class test public test int x 0 i x cout 新建的該物件的地址為 test cout 析構地址為 正確輸出,不過你的 確實認人匪姨所思 與實參的問題 以一個簡單的程式為例來說明 void mswapa int a,int b 這 兩個函式都是交換a...

函式返回值問題

你那個anyin沒有宣告啊,所以它現在什麼也不是,你那個函式最好這樣寫 int a 你這題有問題啊,我想請問一下樓主的目的是幹什麼,如果你想輸出的是 anyin 這麼一個字串的話,那就必須以字元陣列的形式呼叫函式,所以你在傳那個b a 這時候應寫成傳遞陣列形式 如果你單純只輸出一個字元那到好說了 那...

C語言access函式返回值問題

你語句寫錯bai了,應該是du if access const char filepath,int mode 沒有分號 else 檔案不存在 zhi,返回 1,整個表示式是真,執行if體裡的dao語句.我不回知道你access函式怎麼實現的,但你答應該這樣 define file not exist...