C中用了ref就是引用傳遞,C中ref和out到底有什麼用?什麼時候會用到呢?我瀏覽了一些資料但都不是很明白。

2021-03-03 23:06:46 字數 1228 閱讀 2453

1樓:匿名使用者

對啊ref 關鍵字使引數按引用傳遞。其效果是,當控制權傳遞**用方法時,在方法中對引數所做的任何更改都將反映在該變數中。若要使用 ref 引數,則方法定義和呼叫方法都必須顯式使用 ref 關鍵字。

c#中ref和out到底有什麼用?什麼時候會用到呢?我瀏覽了一些資料但都不是很明白。

2樓:匿名使用者

ref表示引數傳遞時按引用傳遞。

例如,假如我要交換2個數。

void swap(int a,int b) 這樣並不能完成交換。因為引數傳遞時預設按值來的。

改成void swap(ref int a,ref int b) 呼叫時:int a=3,b=5; swap(ref a,ref b);

然後a,b的值就被交換了。

out表示引數是傳出的。一般是用作函式返回多個值時使用。

例如:int32的tryparse函式,它用作把一個物件轉化為int32型別。

string s="123"; int32 a; bool canparse=int32.tryparse(s,out a);

也就是說tryparse實際有2個返回值,一個在canparse裡,是一個bool值,表示是否能夠轉換。

另一個返回值在a裡,如果能轉換,a就是轉換後的結果。

3樓:君女子

實際應用的時候,ref的物件是值型別。

用ref可以實現兩個目的,第一,方法中的值引數是複製的形式帶入的。所以如果傳入的引數結構很複雜,資料量很大,而且多次呼叫這個方法,就會導致記憶體消耗大。此時用ref,傳遞的只是指標,而不是整個資料,就可以避免這種消耗。

第二,如果希望這個值型別在這個方法中的所有修改和賦值都保留,就需要用ref。

out的用法,我經常用在一個方法返回多個型別的資料時。

例如string getstr(string input, out int i)。這個方法最後返回了一個string,還丟擲了一個int的值。

純個人理解。希望能看懂我的意思。

4樓:匿名使用者

class program

static void theotheroperation(out int result)

static void otheropearation(ref int result)

static void operation(int result)}

C中的值傳遞和引用傳遞是什麼,python的值傳遞和引用傳遞區別,哪些型別值傳遞,哪些是引用傳遞

值傳遞,是指傳的是資料的副本 引用傳遞,是指傳遞的是資料的地址。舉個例子,地址0x00000001處的資料是5那麼,值型別傳遞的是5的副本 當然也是5 而引用傳遞的是地址0x00000001 值傳遞和引用傳遞最大的區別就是 值傳遞傳遞的是執行緒棧上的資訊的副本 引用傳遞是傳遞的執行緒棧上的資訊的存放...

c 中,怎麼用引用,c 中的引用( )到底都有什麼用處?

include include include int find int x,int a i while i 21 return pos void main 隨機產生20個數並且傳給s 20 find s,n 巧妙利用返回的引用函式cout the number is 就是在函式宣告和定義的引數列表...

C 中引用字元陣列

qqq char a,char b 指向指標的指標 指標的應用 函式的引數除了應用傳遞都是拷貝了一份值,只不過指標拷貝的是指標儲存的值也就是一個記憶體地址。寫法要標準,養成良好習慣 要修改指標變數,要傳遞指標變數的指標 include using namespace std void qqq cha...