c 函式傳參的一些指導原則

2021-07-09 02:35:54 字數 549 閱讀 8192

資料摘自《c++ primer plus》

函式傳參,什麼時候應使用引用、什麼時候應使用指標呢?什麼時候應按值傳遞呢?

1.對於使用傳遞的值而不作修改的函式:

如果資料物件很小,如內建資料型別或小型結構,則按值傳遞。

如果資料物件是陣列,則使用指標,因為這是唯一的選擇,並將指標宣告為指向const的指標。

如果資料物件是較大的結構,則使用const指標或const引用,以提高程式的效率。這樣可以節省複製結構所需的時間和空間。

如果資料物件是類物件,則使用const引用。類設計的語義常常要求使用引用,這是c++新增這項特性的主要原因。因此,傳遞類物件引數的標準方式是按引用傳遞。

2.對於修改呼叫函式中資料的函式:

如果資料物件是內建資料型別,則使用指標。

如果資料物件是陣列,則只能使用指標。

如果資料物件是結構,則使用引用或指標。

如果資料物件是類物件,則使用引用。

當然,這只是一些指導原則,很可能有充分的理由做出其他的選擇。例如,對於基本型別,cin使用引用,因此使用cin>>n,而不是cin>>&n。

C 何時使用引用引數(一些指導原則)

使用引用引數的原因 1.程式設計師能夠修改呼叫函式中的資料物件 2.通過傳遞引用而不是整個資料物件,可以提高程式的執行速度。當資料物件較大時 如結構和類物件 第二個原因最重要,這些也是使用指標引數的原因。這是有道理的,因為引用引數實際上是基於指標的 的另乙個介面。那麼什麼時候使用引用 什麼時候使用指...

C 何時使用引用引數(一些指導原則)

使用引用引數的原因 程式設計師能夠修改呼叫函式中的資料物件 通過傳遞引用而不是整個資料物件,可以提高程式的執行速度。當資料物件較大時 如結構和類物件 第二個原因最重要,這些也是使用指標引數的原因。這是有道理的,因為引用引數實際上是基於指標的 的另乙個介面。那麼什麼時候使用引用 什麼時候使用指標?什麼...

c 函式傳參 和 c 函式傳參的區別

先看c 的 public static void getfilename streamwriter sw,string path,int indent,listlistfile listlistfile new list filehandle.getfilename sw,facepic,2,lis...