C Out與ref是幹什麼的?

2021-08-21 10:16:21 字數 1440 閱讀 1105

1.最後沒有寫 return 語句的話,表示程式正常退出

2.不需要返回值時,存在return的作用

例子

void main()

void main()

3.需要返回值時存在return的作用

int main( int argc)

終止函式執行的一種方式。當return語句提供了乙個值時,這個值就成為函式的返回值.

(除非是結構體、陣列),想讓它能夠返回,怎麼辦?

1.方法中沒有寫返回值的的變數要想傳到方法外:用out或ref

2.out 和ref後面的內容不能稱為引數;

因為引數的作用:傳進來值並參與運算形成最後唯一的return結果

所以這裡out |ref 【變數】 只是為了返回多個變數而產生的機制,最終返回的結果還是乙個值。

static void main(string args)//主方法

; int max = 0;

int min;

int sum = arraysum(nums, out max, out min);

} public static int arraysum(int numbers,out int max,out int min)//呼叫方法的過程中要給這些引數

if (numbers[i] < min)

sum += numbers[i];

}return sum;//但為什麼返回值只有乙個,不是要多個返回值嗎?

//雖然只有乙個返回值,但有兩個out,所以相當於有三個返回值

}

out 不管你在主方法中有沒有給值,在方法中都會重新賦值的,所以即便在方法中賦了值,也會被改變的,因為最終的值是由定義了out的引數的方法決定的,但out需要在主方法中定義變數去接收,所以傳到了主方法中由於重新的賦值,變數值和結果值會受影響。

所以不管你在主方法中怎樣賦值,都不會對結果又影響,所以在主方法看起來這個變數的值好像只有傳出的方向

ref必須在主方法中給值,到方法中可以從新賦值,也可以使用主方法中的值(沒有在主方法中得到值的情況),並且隱含了主方法的變數用來接收值

所以,ref的傳進傳出是指,當在方法中沒有重新賦值,可以傳進來,並把原來賦值的結果傳出去,就好像,有進有出。

但當ref方法中重新賦值的時候,就類似於out,只有傳出

所以標準的ref用法是在主方法中賦值,在方法中不賦值,

標準的out用法是在主方法中不賦值,在方法中賦值,

當:如果都在主方法中賦值

out的情況就是有進無出,本來的結果沒有出來

ref的情況就是有進有出,本來應該得到的結果也被送出來

FFT是幹什麼的

fft在演算法競賽中就有乙個用途 加速多項式乘法 暴言 簡單來說,形如 a0x0 a1x1 a2x2 anxna0x0 a1x1 a2x2 anxn 的代數表示式叫做多項式,可以記作f x a0x0 a1x1 a2x2 anxnf x a0x0 a1x1 a2x2 anxn,其中a0,a1,ana0...

npm是幹什麼的

網上的 npm 教程主要都在講怎麼安裝 配置和使用 npm 卻很少告訴新人 npm 是幹什麼的?為什麼要使用 npm?今天我就來講講這個話題。本文目標讀者是 不太了解 npm 的新人 老司機請繞道。社群共享 麻煩npm的思路大概是這樣的 這些可以被使用的 被叫做 包 package 這就是 npm名...

HttpContext是幹什麼的

httpcontext 類.包括說明和如何使用.於是,上網狂搜 有網路就是好啊.這是我補充的httpcontext 類 1.生存週期 從客戶端使用者點選並產生了乙個向伺服器傳送請求開始 伺服器處理完請求並生成返回到客戶端為止.注 針對每個不同使用者的請求,伺服器都會建立乙個新的httpcontext...