8つの機能

機能

1.基本の機能

数学関数は、誰もが、F(X)= Yの一般的な形態は、Xは独立変数であるに精通している、yは、関数値です。プログラム中の関数、数学は、私たちは、戻り値と呼ばれ、私たちは「パスパラメータ」と呼ばれる引数と、関数の値がありますが、基本的に同じ機能します。

  • 最初の部分は、戻り値の種類の機能。
  • 第二部では必要性が、時間の設計では、関数名を関数名を与えるために、このような上図の関数として関数名に関連する機能を設計しようとするときの名前で、関数を呼び出し、関数名である私たちのこれは、要件の二乗の関数であることを示しています。
  • 第三の部分は、入ってくるパラメータである数学関数の引数です。
  • 第四の部分、すなわち機能ロジックコードを完了するために、関数の本体であり、結果は、中括弧内の関数の全体をラップするreturnステートメントによって返された値、およびロジックです。
#include <stdio.h>
int square(int x) { // 定义函数 square
    return x * x;
}
int main() {
    int n;
    scanf("%d", &n);
    printf("%d\n", square(n));
    return 0;
}

上記のコードでは、主な機能は、我々は整数で読み出さN、その後、nの二乗値を出力します。ここで、nの二乗値を算出し、プログラムが戻り、次に、受信値xならば、機能に対応するのprintf関数の出力は、実装に応じて二乗関数、方形の戻り値であり、上記で定義された正方形の関数を呼び出します値は、xの二乗値であること、X * Xです。

2.可変送信パラメータの一般的な機能

関数パラメータの転送処理は、処理は互いに独立して、「パラメータ」割当「引数」と「パラメータ」の互いに、「引数」とは無関係です。

#include <stdio.h>
void add(int n, int m) {
    n += m;
    return ;
}
int main() {
    int n, m;
    scanf("%d%d", &n, &m);
    add(n, m);
    printf("%d\n", n);
    return 0;
}

関数のパラメータ転送プロセスは、「パラメータ」の割り当てのための「引数」のプロセスです。

この手順では、変数の主な機能nが「引数」、パラメータの追加機能であるnは、同じ名前の両方が、「パラメータ」であるが、それぞれ他の二つの変数の完全に独立しています。

3.参照のアレイの伝達関数

#include <stdio.h>
void add(int *p, int n) {
    for (int i = 1; i < n; i++) {
        p[0] += p[i];
    }
    return ;
}
int main() {
    int arr[10] = {1, 2, 3};
    add(arr, 3);
    printf("%d", arr[0]);
    return 0;
}

あなたがこのプログラムを実行するには、結果の出力は、配列が変更されたことを意味し、6の最初の要素の値がわかります。互いに独立して、プロセスは、「パラメータ」の割り当て、「引数」と「パラメータ」に、それぞれ他の「引数」とは独立して、関数のパラメータ転送プロセス:我々はその文を覚えておく必要があり、今日もう一度考えて。

「引数」は、実際に、アレイの最初のアドレスであり、これは、我々があることを、パラメータは、関数パラメータが最初のアドレスに格納されているポインタ変数です。配列のアドレス空間操作というadd関数空間内、つまり、および取り除くなぜ配列、関数内の関連する要素の値を渡すことができる理由の一つである空間の主な機能である、なぜなら配信がアドレスです!

4.受信および送信パラメータ

#include <stdio.h>
void calc(int x, int *p) {
    *p = x * x;
    return ;
}
int main() {
    int n, m;
    scanf("%d", &n);
    calc(n, &m);
    printf("%d\n", m);
    return 0;
}

関数を定義することによって開始CALC、CALC関数は2つのパラメータがあり、最初のパラメータが第2のアドレスは整数、内部関数で、整数であり、xの二乗値は、pが指すメモリ空間に格納されています。それぞれのcalc機能の主な機能は、着信アドレスの値nとm、およびmの出力値を呼び出し、そして最終的にあなたがmの出力値をn乗であることがわかります。

まず、最初のパラメータxは、このフィールより外側から内側に渡された値は、内部関数のように、と言うことです操作の重要なプロセスに参加するために、関数内で、値外で、この値を渡されます引数このタイプの役割を果たして、私たちは、「パラメータが渡された。」と呼ぶことにします

2番目のパラメータカルク機能を見てみると、アドレスを渡されます。関数内のアクションの後、ちょうどこのアドレス空間に向けて、関数の内部で記録された結果は、記憶装置で得られた結果のいくつかを計算するためには役に立たない、機能が完了するまで、呼び出し元への復帰を待つことです例えば、上記の主な機能の内部、有用であると。これは、パラメータの役割は、値がよりカルク裏返しからのバンドのようです、インテリアデザインにこれ​​らのパラメータの主な機能は、我々は「拡散パラメータを。」と呼ばれます

上記のコードで見られるように、「入ってくるパラメータ」一般的には、ライン上の値に渡すことで、関数から値を引き出す必要があるため、一般的にその内部の機能ができ、変数のアドレスに渡す「パラメータを来ました」正確な結果は、アドレスに対応する関連メモリに書き込まれます。

質問(1):アレイと思う機能

類似点と相違点は、以下の2つの概念を検討してください:
整数配列要素を、例えば:ARR [100]
入射整数関数例えば、整数を返し:FUNC(100)

第一个是申请的占用连续内存空间的数组元素
第二个是申请100个整型数据,内存空间不一定连续
数组只能一次返回一个,函数可以返回多个

質問(2):ブラインドの存在を決定する方法の知識

平均「知識のブラインドスポット」とは何ですか?あなたの顔が暗いときは、知識だけでなく、闇が存在しなければならないかを決定することができます。今日のように、私たちは、知識機能を学んだ、当然、それは自分自身の道を聞いてきます、これらは、それについての知識のすべての機能がありますか?どのように我々はこの質問、それに対する答えを決めるのですか?既知のプッシュ不明によると、非常にシンプル。

概要

  1. アクション機能は、パッケージは、プログラムに関連する機能の他の場所で再利用することができるようにする機能です。
  2. C言語の処理機能を渡すパラメータ、プロシージャのパラメータ割り付けの引数で、パラメータの値を変更し、それが引数には影響を与えません。
  3. 関数のパラメータの設計では、我々は、差分パラメータの関数で、クリアな受信および送信パラメータをしなければなりません。

おすすめ

転載: www.cnblogs.com/liugangjiayou/p/12609415.html