C語言中ref的作用是什麼?10分

時間 2021-10-14 20:16:11

1樓:匿名使用者

ref 的存在是為了傳地址。就是c的指標。所以值引數加上ref就能 在函式中改變原來得值變數。

一般的引用變數就是加不加ref都無所謂。但是當呼叫函式中有new就不一樣了。

傳指標的原理是,你傳的是地址,然後在函式裡面操作那個地址指向的內容的值,所以修改後,結果保留。

但是如果不加ref,傳過去的引用跟值型別一樣,被new之後指向新的地址為某一值的一塊地址,如果是值傳遞一樣,函式裡面其實操作的是引用中儲存的地址,所以new操作對原來的引用變數無效。

加ref 相當於引用的引用,地址的地址,new後指向新的地址空間,原來的記憶體洩漏。ref 相當於&

2樓:

ref就相當於c++裡面的指標

int a = 0;

int add(int p)

add(a) ; //a還是0

int add(ref int p)

add(ref a); //a變成1

3樓:匿名使用者

首先你要知道引用是什麼意思,引用就是應用地址,當修改地址裡面的值得時候,你說會不會修改它的具體實參值呢。。

這就類似於c裡面的指標的。就是這樣的一個過程的。

在c#中ref關鍵字的作用是啥?

c#中關鍵字ref的作用是什麼?

4樓:匿名使用者

你可以給 基本型別(比如整形) 加上ref,就按引用傳遞了。

c#裡傳引數 ref關鍵字的作用是什麼?

5樓:匿名使用者

傳遞引用,也就是僅僅把該引數的指標傳遞到方法裡

6樓:匿名使用者

函式中有值傳遞或引用傳遞,ref是引用傳遞,正好我也是學c#的,如果你願意,在baidu上加我為好友吧!一起討論!

c#中ref是什麼意思?怎麼運用的?求列子

7樓:匿名使用者

可以理解為類似的傳址引用,同時還有out。

在函式需要外部傳入一個變數名,然後在程式內部可以將這個值進行修改,典型的傳址引用!在定義時必要加ref或out說明!

public void methoda(out string s )

呼叫時,應該先宣告一個字元變數。

string temp;

methoda(out temp);

此時可以列印temp的值會變作"1";

而ref與out基本是類同的,如果在程式中引用原值的話,必須使用ref防止傳入未初始化的值。

public void methodb(ref int s)

因為該函式要使用形參的原值,所以這裡必須使用ref宣告,不要使用out宣告。

使用時,

int temp = 8;

methodb(ref temp);

列印temp的值會變為64。

ref因為對原值進行了引用,所以ref要求傳入的一定是一個初始化後的值,不能是未初始化的值。

int temp;

methodb(ref temp);

//原則上這樣是會錯的,但這裡我使用了一個int,由於在宣告時int temp與int temp =0 是等價的,所以不會出錯,但如果是字串,使用這種方式完全是可以報錯的!因為string temp與string temp ="";是不等價的,你也可理解為必須賦值後才可以使用。

public void methodc(ref string s)

string temp;

methodc(ref temp);//這種就是錯誤的方式。ref要求必須形參已經賦值(初始化)。

string temp = "";

methodc(ref temp);//這種方式就是正確的。

我們定義成員方法時,如果有引用原值使用必須使用ref,防上對方傳入一個未初始化的值,引發程式錯誤,而沒有必要對形參的值有要求時,則儘量使用out,防止呼叫時增加客戶端**量。

c#中用了ref就是引用傳遞?

c語言中include是什麼,C語言中include是什麼

include 是c語言的關鍵字 c語言有自己的函式庫,你要是想要用函式庫裡的函式就必須把包含這些函式的檔案包含進來,這時就需要用include關鍵字了,舉個例子 include stdio.h中包含基本輸入輸出函式祝你好運!包含指令,比如要使用printf scanf gets等函式就需要包含st...

C語言中的清屏有什麼作用那,C語言中清屏函式是什麼?

小丁創業 c語言中的清屏的作用為 清除螢幕輸出。呼叫清屏時,螢幕上的所有輸出都將被清除,這相當於為軟體重新提供了畫布以自由輸出。螢幕清除通常用於以下情況 1 當最後一個功能的執行完成時,輸出不再重要,並且需要顯示新的內容或選單。2 對於加密,例如某些記憶遊戲,在顯示幾秒鐘後,清除所有輸出。3 要顯示...

在c語言中起什麼作用,C語言中的 是個什麼意思啊 有什麼用啊

模數運算子 計算第二個運算元除第一個運算元後的餘數。所有數值型別都具有預定義的模數運算子。希望對你有幫助 求餘數用的 比如10 3 結果為1 10 2 結果為0 我來總結的說一下吧 1.用來整數求餘 如4 3 1 2.放在特定小寫字母前用來控制輸入或輸出格式常用的有 d 整形 f 實數 c 字元 s...