C C 陣列傳參

2021-10-01 23:06:34 字數 845 閱讀 3343

託管c++可以將陣列作為輸入/輸出引數。clr封裝c++託管介面時,可以使用cli::array<>作為輸入引數,而且c#可以獲取到c++修改後的陣列內容。

array陣列原型:  [qualifiers] [cli::]array<[qualifiers]type[,dimension]> ^var;

我們只關注下模板引數:

type

託管陣列元素的型別名。可選擇的型別包括型別的控制代碼 ^名,型別名或本地指標名(例如值型別的 *指標名)。

dimension

託管陣列的維數。預設維數為1,最大維數為 32。

var

託管陣列名。

使用時加命名空間cli,因為std裡也有array。

//宣告

string^ printvalues(cli::array^ myarr);

//定義

string^ dllforcs::robotclient::printvalues(cli::array^ myarr)

//使用

string strq = ;

string rt = teach.printvalues(strq);

messagebox.show(rt,"rt");

messagebox.show(strq[1], "strq");

//ps:我這裡把介面宣告在我的類裡的

c c 陣列傳參

在c c 中,在進行陣列傳參時,陣列的元素個數預設是不作為實參傳入呼叫函式,也就是說c c 不允許向函式傳遞乙個完整的陣列作為引數 例項 1.形式引數是乙個指標,實參包括陣列長度 1 void myfunction int param,int length 6 2.形式引數是乙個已定義大小的陣列 1...

C C 函式中陣列傳參

voidf char s char str hello world cout sizeof str strlen str f str 以上 在32位平台上輸出為 12,11,4,11 原因 在c c 裡陣列作為引數時傳遞的實際上是指向陣列第乙個元素的指標,因此sizeof str 返回的是指標的大小...

C C 傳參問題

1 結構體變數作為函式形參的時候,實際上和普通變數 類似於int之類的 傳參時表現是一模一樣的。所以說結構體變數其實也是普通變數而已。2 因為結構體一般都很大,所以如果直接用結構體變數進行傳參,那麼函式呼叫效率就會很低。因為在函式傳參的時候需要將實參賦值給形參,所以當傳參的變數越大呼叫效率就會越低 ...