C 利用指標和結構體實現乙個函式返回多個值

2021-07-29 02:49:36 字數 973 閱讀 4411

在函式執行到return語句時,將不再向下執行,那麼如何讓函式一次性返回多個值?

一般可以用兩種方式解決這個問題,利用指標和利用結構體

1.利用指標

直接上**:

#include 

using

namespace

std;

int main()

int * test(int a,int b,int c)

執行結果:

1 2

3可以看到,我們其實定義了乙個int型別的指標作為函式test的型別,所以這個函式的返回值也應該是乙個int型別的指標,所以在第15行,我們定義了乙個presult指標,並讓它指向乙個三個元素的陣列。(在這裡,其實我們並沒有定義陣列,而是使用了動態記憶體分配的方式)然後將三個形參分別寫入到陣列裡,最後將指標作為函式的返回值返回。顯然這個函式的功能是沒有意義的,在這裡只做演示而已。

利用指標作為函式的返回值的方式有乙個很大的弊端,不管返回幾個值,他們的型別都是相同的。所以為了避免這個問題,我還需要另一種方式,利用結構體。

2.利用結構體

還是先上**:

#include 

using

namespace

std;

struct result

;int main()

result test(int a,double b)

然後,我們定義的函式test其實就是乙個result型別的函式,定義的變數ret和returnvalue 也是result型別的變數,test的返回值當然也是乙個result型別的值。我們利用result型別的變數–returnvalue 中的成員,區分開int和double,實現返回值的型別不同。

C 利用指標和結構體實現乙個函式返回多個值

直接上 include using namespace std int main int test int a,int b,int c include using namespace std struct result int main result test int a,double b 然後,我...

C 指標和結構體

1.基本概念 2.指標變數的定義與使用 3.指標所佔記憶體空間 include using namespace std int main int p a cout 8.指標 陣列 函式 1.基本概念 2.結構體的定義與使用 定義 使用 3.結構體陣列 include include using na...

C結構體實現乙個通訊錄

題目 實現乙個通訊錄,通訊錄可以用來儲存1000個人的資訊,每個人的資訊包括 姓名,性別,年齡,住址。提供方法 1.新增聯絡人資訊 2.刪除指定聯絡人的資訊 3.查詢指定聯絡人的資訊 4.修改指定聯絡人的資訊 5.顯示所有聯絡人資訊 6.清空所有聯絡人 7.以名字排序所有聯絡人 思路分析 1.首先我...