目次
1. 関数とは何ですか
関数は、大規模なプログラム内のコードの一部であり、1 つ以上のステートメント ブロックで構成されます。これは特定のタスクを完了する責任を負い、他のコードからは比較的独立しています。一般に、入力パラメータと戻り値があり、プロセスの詳細をカプセル化して非表示にします。
2. 機能の分類
関数は、ライブラリ関数とカスタム関数 に分類できます。
2.1 ライブラリ関数
C言語プログラミングを学習していると、コードを書いた結果を知りたい、その結果を画面に出力したいとき、情報を一定の形式で画面に出力する関数(printf)をよく使います。プログラミングの過程では、文字列のコピー (strcpy)、n の k 乗の計算 (pow)、絶対値の計算 (abs) が頻繁に行われます。
上記の基本関数と同様に、これらは業務コードではなく、開発プロセス中にすべてのプログラマが使用する可能性がありますが、移植性をサポートし、プログラムの効率を向上させるために、C 言語の基本ライブラリには、プログラマを容易にする一連の同様のライブラリ関数が提供されています。
ソフトウェアを開発すること。
学習ライブラリ関数の参考 Web サイト:www.cplusplus.com
C 言語で一般的に使用されるライブラリ関数には、IO 関数、文字列操作関数、メモリ操作関数、時刻/日付関数、数学関数などが含まれます。ライブラリ関数を使用する場合は、対応するヘッダー ファイル #include をインクルードする必要があります。
2.2 カスタム関数
カスタム関数はライブラリ関数と同じです。関数名、戻り値の型、関数パラメータがあり、ビジネス ニーズに合わせて独自の関数を設計できます。
ret_type fun_name(para1, para2,....)
{ ステートメント;//ステートメント項目} ret_type 戻り値の型fun_name 関数名para1, para2 関数パラメータ
例: 2 つの整数の最大値を見つける関数を設計する
#include <stdio.h>
int get_max(int x, int y)
{ return (x>y)?(x):(y); int main() { int num1 = 10; int num2 = 20; int max = get_max(num1, num2); printf("max = %d\n", max); 0を返します。}
3. 関数パラメータ
3.1 実パラメータ(実パラメータ)
実際に関数に渡されるパラメータは実パラメータと呼ばれ、定数、変数、式、関数などになります。実パラメータの型に関係なく、これらを転送するために関数呼び出しを行うときは、特定の値が必要です。値を仮パラメータに変換します。
3.2 仮パラメータ(仮パラメータ)
仮パラメータは、関数名の後の括弧内の変数を指します。仮パラメータは、関数の呼び出し時にのみインスタンス化される (メモリ ユニットが割り当てられる) ため、仮パラメータと呼ばれます。関数呼び出しが完了すると、仮パラメータは自動的に破棄されるため、仮パラメータは関数内でのみ有効です。仮パラメータがインスタンス化された後は、実際には実パラメータの一時コピーと同等になります。
4. 関数呼び出し
4.1 値による呼び出し
関数の仮パラメータと実パラメータはそれぞれ異なるメモリ ブロックを占有し、仮パラメータを変更しても実パラメータには影響しません。
4.2 アドレスによる通話
アドレス指定呼び出しとは、関数の外で作成した変数のメモリアドレスを関数の引数に渡すことで関数を呼び出す方法で、関数の外にある変数を関数内で直接操作することができます。
5. ネストされた呼び出しと関数の連鎖アクセス
実際のニーズに応じて機能を組み合わせることができます。
5.1 ネストされた呼び出し
#include <stdio.h>
void new_line()
{ printf("へへ\n"); void three_line() { int i = 0; for(i=0; i<3; i++) { new_line(); int main() { three_line (); 0を返します。}
関数はネストして呼び出すことができますが、定義することはできません。
5.2 チェーンアクセス
ある関数の戻り値を別の関数のパラメータとして使用します。
#include <stdio.h>
#include <string.h>
int main()
{ char arr[20] = "hello"; int ret = strlen(strcat(arr,"bit")); printf("%d\n", ret); 0を返します。}
6. 関数の宣言と定義
6.1 関数宣言
関数の呼び出し内容、パラメータ、戻り値の型をコンパイラに伝えます。関数の宣言は通常、関数を使用する前に行われます。最初に宣言してから使用するという要件を満たすには、通常、関数の宣言をヘッダー ファイルに配置する必要があります。
6.2 関数の定義
関数の定義とは、関数の機能を実現するための関数の具体的な実装を指します。
7. 関数の再帰
再帰:自分自身を呼び出す プログラムは再帰と呼ばれます。アルゴリズムとしての再帰は、プログラミング言語で広く使用されています。プロセスまたは関数には、その定義または説明の中で直接的または間接的に自身を呼び出すメソッドがあります。再帰的戦略では、問題解決プロセスに必要な複数の反復計算を記述するために少量のプログラム コードのみが必要となり、プロセスの複雑さが大幅に軽減されます。コードの量と再帰について考える主な方法は、大きなものを小さくすることです。
再帰の必要条件: 制約条件があり、この制約条件が満たされると再帰は続行されなくなり、再帰呼び出しはどんどんこの制約条件に近づいていきます。
例: 整数値 (符号なし) を入力し、その各ビットを順番に出力します。
#include <stdio.h>
void print(int n)
{ if(n>9) { print(n/10); printf ("%d ", n%10); int main() { int 数値;
scanf("%d",#);
印刷(番号);
0を返します。
}