連載
【問題13】「関数に配列を渡す」とは何か:完全マスター! 組み込みC言語プログラミング(14)(3/3 ページ)
C言語の関数呼び出しでは、まず引数(実引数)の値を求め、その値を呼び出す関数の仮引数に代入し、その後、関数に制御が移ります。では、「関数に配列を渡す」際にはどうなっているのでしょうか。
ポインタ引数
引数でポインタの受け渡しが行なわれているので、引数にポインタを書いても同じ結果になります。下のpocket_money2.cは引数をポインタに書き換えたものですが、pocket_money.cと全く同様に動きます。
#include <stdio.h> int max_value_index(const int *); void main(void) { int moneies[12] = {3100,2900,3100,3000,3100,3000,3100,3100,3000,3100,3000,4000}; printf("最大出費は%d月です¥n", max_value_index (moneies) + 1); } int max_value_index (const int *v) { int imax, i; imax = 0; for (i = 1; i < 12; i++) if (v[i] > v[imax]) imax = i; return imax; }
pocket_money2.c
問題14
それでは、次回の宿題です。
問題14:
文字列を受け取り、その文字列に英字と数字がそれぞれ何文字含まれているか求める関数を作ってください。
⇒解答と解説は次回
Copyright © ITmedia, Inc. All Rights Reserved.