陣列和指標傳參

2021-08-15 16:33:21 字數 1046 閱讀 9309

在我們寫函式時,有沒有被引數型別難到呢?如果有,那就耐心看完本篇部落格吧^-^

一維陣列傳參:

二維陣列傳參:

總結:陣列傳參時,降級為其內部元素型別的指標,二維陣列傳參,函式的引數只可以省略第乙個[ ]的數字,因為對二維陣列,可以不知道有多少行元素,但必須知道一行有多少元素。引申為,多維陣列傳參,只有第乙個[ ]的數字可以省略。將多維陣列看做一維陣列,方便考慮。

注意:因為陣列傳參時,會降級為其內部元素型別的指標,不論是什麼型別的指標,在32位平台都是4位元組,如果計算陣列元素個數,需要將元素作為引數傳給函式。

一級指標傳參:

指標也是變數,在傳參時也會形成臨時變數,也有形參。

思考:當乙個函式的引數為一級指標時,函式能接收什麼引數?

請看下列例子:

void test1(int *p),可以接收變數的位址,一維整型陣列名,一級指標int *p

void tets (char *p) ,可以接收字串,一維字元型陣列,一級指標 char *p

二級指標傳參:

二級指標傳參時,函式的形參和實參指向內容相同

思考:當函式的引數為二級指標時,可以接收什麼引數?

void test(int **p),可以接收二級指標,一級指標位址,指標陣列(int *p[5]=;)

以上就是我對陣列與指標傳參的總結,如有不足之處,請各位大神多多指點,謝謝!

指標陣列陣列傳參 指標引用傳參

指標和陣列作為引數傳入函式時,傳入的是位址,即指向變數的位址和陣列的首位址,可以在函式中改變指標或陣列的值,但本質上它們還是值的傳遞 區別於變數的值傳遞的是 變數值傳遞不會改變實參原來的值。我們無法對指標和陣列的位址進行操作 如 位址賦值,分配記憶體等 要進行位址操作需要使用指標引用或指標的指標。示...

指標陣列 陣列指標 陣列傳參

指標陣列 實際上是乙個陣列,陣列中存放的元素是指標 例如 int arr 10 char arr1 5 陣列指標 實際上是乙個指標,指向乙個陣列的指標 例如 int p 10 這就表示乙個p指標,指向乙個大小為10陣列 在陣列傳參的過程中,由於c語言的對於速度的要求的特點,是不會傳整個陣列的,最終陣...

C 陣列指標 指標陣列及陣列傳參

一維陣列傳參 二維陣列傳參 一級指標傳參 二級指標傳參 小引 在指標的學習階段,有不少同學都十分畏懼這個物什,甚至 談指標色變 其實對指標的不理解,其實本質上是對記憶體的不理解,本篇部落格就從零開始 系統的來講解指標這個話題。首先我們應該明確以下的一些基礎常識 指標是乙個變數,用來存放位址,位址唯一...