ウェイ1
ポインタとしての正式なパラメータ
void myFunction(int *param) { . . . }
ウェイ-2
サイズの配列としての正式なパラメータ
void myFunction(int param[10]) { . . . }
道 - 3
サイズの指定されていない配列としての正式なパラメータ
void myFunction(int param[]) { . . . }
例
今度は、次の関数を考えてみましょう。これは、配列を別の引数と共に引数としてとり、渡された引数に基づいて、次のように配列を渡される数値の平均を返します
double getAverage(int arr[], int size) { int i; double avg; double sum = 0; for (i = 0; i < size; ++i) { sum += arr[i]; } avg = sum / size; return avg; }さて、上記の関数を以下のように呼ぶ
#include <stdio.h> /* function declaration */ double getAverage(int arr[], int size); int main () { /* an int array with 5 elements */ int balance[5] = {1000, 2, 3, 17, 50}; double avg; /* pass pointer to the array as an argument */ avg = getAverage( balance, 5 ) ; /* output the returned value */ printf( "Average value is: %f ", avg ); return 0; }
Average value is: 214.400000
ご覧のように、配列の長さは、Cが仮パラメータの境界チェックを実行しないため、関数が関係する限り重要ではありません。
No comments:
Post a Comment