c c 陣列傳參

2021-10-02 09:29:15 字數 1622 閱讀 1137

在c/c++中,在進行陣列傳參時,陣列的元素個數預設是不作為實參傳入呼叫函式,也就是說c/c++ 不允許向函式傳遞乙個完整的陣列作為引數

例項:1.形式引數是乙個指標,實參包括陣列長度:

1

void

myfunction

(int

*param,int length)

6}

2.形式引數是乙個已定義大小的陣列:

1

void

myfunction

(int param[10]

)27}

3.形式引數是乙個未定義大小的陣列,實參包括陣列長度:

1

void

myfunction

(int param,

int length)

6}

主函式呼叫方法:

1 #include

2using std::cout;

3using std::endl;

4 #define size 10

5class

newmessage;15

void

main()

16;19 newmessage.

myfunctionone

(newmessage.array, size)

;//方法1

20 newmessage.

myfunctionthree

(newmessage.array, size)

;//方法2

21 newmessage.

myfunctiontwo

(newmessage.array)

;//方法322}

23//1.形式引數是乙個指標,實參包括陣列長度:

24void newmessage::

myfunctionone

(int

*param,

int length)29}

3031

//2.形式引數是乙個未定義大小的陣列,實參包括陣列長度:

32void newmessage::

myfunctionthree

(int param,

int length)37}

3839

//3.形式引數是乙個已定義大小的陣列:

40void newmessage::

myfunctiontwo

(int param[size]

)//注意:這種用法跟 void newmessage::myfunctiontwo(int (¶m)[size])用法一樣

4146

}```c

如果想要傳入乙個陣列是乙個任意大小的那麼應該用以下方法:

```cpp

1template

<

int n>

2void

function

(int

(&array)

[n])

;//此方法叫非型別模板引數

//任意大小的int型陣列都可傳入

C C 陣列傳參

託管c 可以將陣列作為輸入 輸出引數。clr封裝c 託管介面時,可以使用cli array 作為輸入引數,而且c 可以獲取到c 修改後的陣列內容。array陣列原型 qualifiers cli array qualifiers type dimension var 我們只關注下模板引數 type ...

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 因為結構體一般都很大,所以如果直接用結構體變數進行傳參,那麼函式呼叫效率就會很低。因為在函式傳參的時候需要將實參賦值給形參,所以當傳參的變數越大呼叫效率就會越低 ...