c引用引數如何設預設值

2021-03-06 12:27:33 字數 767 閱讀 4403

1樓:鹿皮鼓

我想說的是樓主知不知道引用的目的呢?

引用的目的通常是為了節約實參傳遞給函式時,構造形參的開銷(類物件的構造成本),而int是內建型別,值傳遞和引用傳遞的開銷是一樣的。

樓主的想法大概是想在呼叫函式且預設引數時i的值為0,而現在的寫法我認為編譯器會認為是將int型別的引用設定為空,即引用不指向任何已存在的int變數。就好想將指標的內容設定為0和將指標設定為null的區別一樣。

而將引用設定為空的操作:

int *i = null;

int &x = *i;

但這樣的操作是應被避免的,引用就必須指向一個已存在的物件。

所以會有錯誤提示。

要實現樓主的想法完全不必使用引用的,我想是這樣的吧,還請高手們繼續指點。

2樓:匿名使用者

你這個引數i是引用型別,引用型別變數的初值需要該型別的一個變數,而且賦值之後不能改變

例如int &a;

int b;

a=b使用a就相當於使用b,a的值變了,b的值跟著變。

至於怎麼i的預設值為0,確實需要高人回答下

3樓:匿名使用者

這個地方我測試過了,我的這個寫法是成功的。

1 #include

2 int bb = 10;

3 void fun(int &a=bb);

4 5 int main(void)

6 12

13 void fun(int &a)14

C 函式介面問題,有的時候引數是引用,而有的時候是變數本身,我想知道區別,該如何使用

你用引用的理解是正確的,對引用的操作實際上是對原變數的操作。另外專一種不叫變數本身屬,應該說成是按值傳遞,比如為什麼要用引用?大多數時候使用引用是為了拿到返回值,就如果上面的函式,一個函式的返回只能有一個值的,那萬一你的函式要返回很多值怎麼辦?那就可以使用引用了。一般不想改變一個變數的值 在變數前加...

求問個c語言問題,為什麼二維陣列做引數引用時,陣列要填下標

不清楚你學指標沒,如果學了這個問題就好說了.二維陣列是一個二級指標,而一維陣列就是版一個普通的指標權.二維陣列其實也是一維的,只是它的一個元素還是一個陣列.而一維陣列要得到一個元素可以這樣 p i 這樣是完全等價於p i 的.而二維陣列想要得到它其中的一個元素就要這樣 int i 10 3 i 1 ...

C 編譯的DLL在C中引用後,如何顯示DLL中的註釋內容

如果c 寫的是標準com介面動態庫,就可以用 helpstring 關鍵字在idl檔案中寫入相應的註釋。註釋是不會編譯到 裡面的 託管的還是非託管的dll?c 引用.dll檔案後,如何顯示dll裡方法的解釋 開啟microsoft visual studio 2010,新建 windows窗體應用程...