C言語の関数を深く理解。値渡し・コールスタック・再帰関数を解説。
int square(int n) { // 戻り値の型 int return n * n; // return で値を返す } int main(void) { int r = square(5); // 関数呼び出し。rに25が入る printf("%d\n", r); }
void を使います。// 戻り値なし、引数なし void sayHello(void) { printf("Hello!\n"); // returnは書かなくてもOK } // 戻り値なし、引数あり void printBox(int n) { for(int i=0; i<n; i++) printf("*"); printf("\n"); } // 戻り値あり、引数なし int getAnswer(void) { return 42; }
int main(void) は「引数なし、戻り値はint」を意味します。double triangleArea(double base, double height) { return base * height / 2.0; } int main(void) { double area = triangleArea(6.0, 4.0); printf("面積 = %f\n", area); // 12.000000 }
int宣言の引数にdouble値(例: 3.5)を渡すと、小数部分が切り捨てられて渡されます。この講座の理解度をチェックしましょう!
C言語では配列名はポインタ(先頭要素のアドレス)として渡されます。配列全体のコピーは作られません。
再帰関数は自分自身を呼び出すため、終了条件がないと無限再帰になりスタックオーバーフローを起こします。
関数ポインタは関数のアドレスを保持し、コールバックや関数テーブルの実装に使われます。