関数に配列を渡す際の記述方法について、一部誤りがあったので修正しました。

[プロ技]C言語における副手続きー関数ー

woody_1227 オーナー 公式アカウント

実際の「副手続き」をどのように記述するのか
ログインすると、チェック機能を利用できるようになります。
・言語が元々備えている関数…「 」
・利用者が独自に定義した関数…「 」

関数には、① と② 、③ がある。
① …
② … ( )
③ …

※仮引数の値は、実引数のコピーであって、実引数が変数であったとしても、その変数が書き換えられることはない。( )

C言語における関数の記述方法
関数の型␣関数名(仮引数) {
//処理
return文;
}

・関数の型は、関数の戻り値の型となる。戻り値がない場合は、 という型で宣言する。
・関数名は、一般的に小文字と大文字の組み合わせで宣言する。
・仮引数の部分は、型と変数(配列)名を空白区切りで記述する。複数ある場合は、それをカンマ区切りで記述する。
・return文は、関数の型に合わせた値をreturn()の中に記述する。関数の型が、 の場合は、return;と記述する。

具体的には、例えば次のようになる。
int sum(int n, int x[]) {
int s = 0;
for (int i = 0; i < n; i++) {
s += x[i];
}
return(s);
}


○ユーザー定義の記述位置
プログラムの見やすさや保守のしやすさなどの観点から、ユーザー定義関数は、main()関数の に記述するのが一般的。
「 」…ユーザー定義関数の先頭行と同じものを記述する。 働きを持ち、 してくれるようになる。

― 以下、プリントに記述のない追加事項 ―

関数の仮引数が、1次元配列の場合は、要素数をx[]のように省略できる。
具体的には、先述のプログラムの通り。

関数の仮引数が、2次元以上の配列の場合は、要素数のうち、最も左側の[]の中身だけ省略できる。
具体的には、x[][10][10]のようになる。

なお、関数に引数として配列を渡した場合、変数とは異なり、 のようなものを行っている。
すなわち、 。