【C言語入門】関数編1
0. 関数とは
プログラミングで言う関数とは、数学における関数とは意味が異なります。同じような処理をいちいち全て書くのでは、作業効率も悪いですし、間違えも増えます。そのような「同じ処理」をひとかたまりにしたものを、「関数」と呼びます。
C言語のプログラムの冒頭部分である、
#include <stdio.h> int main(void) { ... return 0 }
の、「main」は関数名です。この関数はmain関数と呼ばれる特殊な関数で、実行時に必ずこの関数が実行されます。
関数を使って次のようなプログラムを書く事ができる。
#include <stdio.h> int triangle(int n_1, int n_2) { int measure; measure = n_1 * n_2 / 2; return measure; } int main(void) { print("%d", triangle(5, 6)); return 0; }
「triangle」と言う関数は、底辺がn_1、高さがn_2の三角形の面積を求めて返す関数である。main関数で、底辺が5、高さが6の三角形の面積を求めて表示している。
printfやscanfなどもC言語にもともと備わっている関数であり、C言語が提供する関数のことを「ライブラリ関数」と言う。
1. 関数の定義
関数とは、処理の塊の事であるが、イメージ的には、値を入力して何らかの値を出力する装置だと思えば良い。
関数の定義に必要な要素は以下の図のようなものである。
関数頭部
関数の名前と使用を記述する部分。関数頭部の中に次のような要素が含まれている。
・返却値型
関数が戻す値の型。
・関数名
関数の名前。名前で関数が呼び出される(後述)。
・仮引数並び
補助的な指示を受け取るための変数である仮引数の宣言。
型を宣言する必要がある。関数本体
複合文で構成される。関数の中でのみ利用する変数があれば、その中で宣言・利用する。ただし、仮引数と同じ名前の変数を宣言することはできない。
2. 関数の呼び出し方法
関数を呼び出して、関数内の処理を実行させるためには、関数呼び出し演算子と言うものを用いる。簡単に言えば、関数名に仮引数の値を代入したものを書けば良いだけである。例えば、冒頭のプログラムでは、
triangle(5, 6);
で関数「triangle」が実行される。一般に関数呼び出し演算子とは次のようなものである。
- 関数呼び出し演算子x(arg)
関数xに、実引数argを渡して呼び出す。関数xが返却した値を生成する。
「関数呼び出し式」とは、関数呼び出し演算子を用いた式のことである。
関数が呼び出されて、値を返してmain関数がに戻されるまでのフローを図にして示す。
引数のやり取りを、値渡しと言い、仮引数は実引数のコピーとなる。つまり仮引数を変更しても、実引数にはなんの影響もない。