【課題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)はエラー
関数が受け取るアドレスだけでは,コンパイラは行の要素数を判断できないので,行の要素数は明示しなくてはならない.