c語言 關於陣列名作引數傳遞問題

2021-06-22 00:01:51 字數 779 閱讀 2205

本文以 int  型為例,以函式func為例

1)  int  iexama                 //定義乙個整型數

2) int * pexamb //定義乙個指向整型數的指標

3) int iexamc [ 4 ] //定義乙個一維陣列

4) int * pexamd[ 5 ] //定義乙個陣列,陣列的每個元素是 指向整型數 的指標

5) int iexame[ 6 ] [ 7 ] //定義乙個二維陣列

(1)將一維陣列名  iexamc 作為引數傳遞情況,

void  func( int p [ ], int n )

(2)將 iexamd 作為引數傳遞

void func( int * p [ ] , int  n )

(3)將  iexame  作為引數傳遞

void func( int ( * p )[ 7 ] , int n)

C 用陣列名作函式引數

c 用陣列名作函式引數 微學苑 常量和變數可以用作函式實參,同樣陣列元素也可以作函式實參,其用法與變數相同。陣列名也可以作實參和形參,傳遞的是陣列的起始位址。由於實參可以是表示式,而陣列元素可以是表示式的組成部分,因此陣列元素當然可以作為函式的實參,與用變數作實參一樣,將陣列元素的值傳送給形參變數。...

使用陣列名作為函式引數

主函式中初始化乙個二維陣列,表示乙個矩陣,矩陣,並將每個元素都輸出,然後呼叫子 函式,分別計算每一行的元素之和,將和直接存放在每行的第乙個元素中,返回主函式之 後輸出各行元素的和。include using namespace std void rowsum int a 4 int nrow int...

C語言中用陣列名作為引數能改變實參陣列的值的理解

很多初學者不理解為什麼c語言中用陣列名作為引數能改變實參陣列的值,現在來談談我的理解 把實參陣列傳遞給函式,則形參從陣列 得到了其實位址,因此陣列與實參陣列共佔了同一段記憶體單元,在函式呼叫期間,該變了形引數組的值,也就改變了實參陣列的值。現在問題來了,怎麼理解共占同一段記憶體單元和值改變造成的影響...