【課題4−7 仮引数に配列を使う】

 

<仮引数に配列を使う>

仮引数にポインタの代わりに配列を使うこともできる

(ポインタを使った例)

       int over_no(int *data, int n, int no) {

              ...

              if (*(data+i) >= no) {

              ...

(配列を使った例)

       int over_no(int data[], int n, int no) {

              ...

              if (data[i] >= no) {

              ...

これらは等価なので

(例1)int over_no(int data[], int n, int no) {

              ...

              if (*(data+i) >= no) {

 でも

(例2)int over_no(int *data, int n, int no) {

              ...

              if (data[i] >= no) {

 でも,問題ない.

 

<関数に2次元配列を渡す>

(例)  #define N 5

       ...

       int dt[N][4] = {{1, 2, 3, 4}, {5, 6, 7, 8},...};

       ...

// dtを受け取る関数

       int over_avg(int data[][4], int n, int no)

//     int over_avg(int data[][], int n, int no)はエラー

関数が受け取るアドレスだけでは,コンパイラは行の要素数を判断できないので,行の要素数は明示しなくてはならない.

 

 

戻る