星期二, 2月 28, 2017
[ C ] Array 傳遞方式
Array以第一個元素當作是陣列的位址,
因此我可以直接丟array去給function不用加&拿他位址。
void PrintlnOneD(int Array[])
PrintlnOneD(Array_0);
也可以看出來兩邊印出來的value和address都是一樣的。
@@@[1] [0x7ffc7f3b3070]
@@@[2] [0x7ffc7f3b3074]
@@@[3] [0x7ffc7f3b3078]
@@@[4] [0x7ffc7f3b307c]
###[1] [0x7ffc7f3b3070]
###[2] [0x7ffc7f3b3074]
###[3] [0x7ffc7f3b3078]
###[4] [0x7ffc7f3b307c]
如果要傳遞2D的array當參數,有以下幾種方式,
這種方式是錯的,因為系統不知道位址在哪裡。
void PrintlnTwoD(int Array[][]){}
這種方式是最基本的,但大小就會被限制住。
void PrintlnTwoD(int Array[4][4]){}
這種方式就不會限制住了,
void PrintlnTwoD2(int Array[][4]){}
又或者用這樣指標array的方式來用,
void PrintlnTwoD3(int (*Array)[4]){}
SourceCode
Ref.
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言