1. 程式人生 > >C語言中數組做函數參數的問題

C語言中數組做函數參數的問題

而已 參數傳遞 等價 參數 長度 內存 函數參數 數組參數 編譯器

數組做函數參數,會退化成為一個指針變量。因此在進行數組參數傳遞的同時,需要傳遞一個數組長度的參數變量。

數組長度可以通過sizeof(arr)/siezof(arr[0])來得到。關於這個sizeof操作符,簡單的理解就是求得指針指向的內存塊的大小。

當數組作為實參進行傳遞的時候,被調用函數中的形參的數據類型和實參所傳遞過來的數據類型是不一樣。

也就是說,寫在形參位置上的數組,表面上是數組,但是編譯器會將它當作是一個指針,只會分配4個字節的內存。

形參寫在括號內,和寫在函數中第一行是等價的,只是第一種提供了對外的接口而已。

C語言中數組做函數參數的問題