如何同時返回兩個值

2021-07-11 17:18:29 字數 1147 閱讀 2480

關鍵字就是被c語言本身占用的那些字串,比如:int,typedef。我們在定義變數或函式的名字時時要避開它們。

標誌符就是我們定義的變數和函式的名字。

提出乙個問題:寫乙個函式,計算兩個數相除,要求同時返回商和餘數,怎麼寫?

我們知道函式的返回值只能有乙個,同時返回兩個數這跟本不可能。但用結構就變為可能了!**如下:

struct result;

struct result div(int a,int b)

struct result r = div(33432,44);

首先定義了結構result,又定義了函式div,最後呼叫了函式。

注意以結構做為型別時,必須在結構名前帶有關鍵字struct 。想不帶也可以,那就需要用typedef為struct result取個別名,這個名字可以仍然是result,但這樣就可以省掉關鍵字struct了(如果你的原始檔是.cpp而不是.c,不用typedef 也可以省掉關鍵字struct)。如:

typedef

struct resultresult;

result div(int a,int b)

result r = div(33432,44);

可以看到結構出現的目的很簡單:把一坨相關的變數,弄到一起,作為乙個整體使用。 

結構其實是一種自定義型別,就像系統已有的型別int ,long 等一樣。 

訪問結構中的變數的方式是用「.」。結構中的變數叫成員變數。 

結構也可以作為函式的引數。

兩數相除同時返回商和餘數的函式還有另一種寫法。這種寫法使用「輸出引數」。前面講的例子中,引數都是傳入函式中的,讓我們覺得引數就是向函式內傳值的(這叫輸入引數),但其實引數也可以讓外部從函式內接收值。這就相當於返回的作用了。看一下新函式的寫法:

int div(int a,int b,int

*yu)

int yu;

int shang = div(33432,44,&yu);

注意div函式的第三個形參叫yu,而呼叫div函式時,第三個實參傳入的變數也是yu,注意這兩個yu不是乙個東西。函式的形參只在函式內部起作用,所以外部變數與函式形參同名沒問題 。

函式div返回的是商,而餘數是通過形參yu返回的。

如何同時管理兩個專案?

最近比較忙。產品的乙個版本a正在測試部門進行功能 效能的驗證測試,另乙個版本b正在處於需求分析階段。因工作安排關係,我作為版本a專案組c和版本b專案組d的專案經理,需要負責版本a的問題定位 小特性開發的的組織工作,需要負責版本b的專案計畫 開發組織工作。多項工作進行,面臨多個領導的壓力,確實是很有挑...

如何使兩個nginx同時執行

1.假設已經自動安裝了乙個nginx 2.第二個必須執行編譯安裝,編譯時需要制定 prefix,這樣才能將nginx安裝到乙個指定的目錄下,設為 ngx dir 3.把執行檔案複製乙份 cp f ngx dir sbin nginx ngx dir sbin nginx new 4.把自動安裝的啟動...

ubuntu中如何同時執行兩個nginx

第乙個nginx使用apt get自動安裝了 第二個nginx必須執行編譯安裝,編譯時需要使用 prefix指定nginx的安裝,設為 ngx dir 把新安裝的nginx的執行檔案複製乙份 cp f ngx dir sbin nginx ngx dir sbin nginx new 把自動安裝的啟...