C言語ポータル - 関数

まず、この関数は兆候を示します

、10〜30及び35〜3個を得た20〜45と

#include <stdio.h>

// 定义一个函数
void sum(int begin, int end)
{
    int sum = 0;
    int i = 0;
    for (i = begin; i <= end; i++)
    {
        sum += i;
    }
    printf("%d到%d的和是%d\n", begin , end , sum);
}

int main()
{
    sum(1,10);
    sum(20,30);
    sum(35,45);
    return 0;
}

第二に、関数の定義とその使用

  1. ゼロ以上のパラメータ、行うには一つのことを受けて、コードの関数であり、値または別のものを返します。
  2. Javaおよび他の類似は、詳細な記録はありません

関数の戻り値

// 定义返回值的类型
int max(int a , int b)
{
    int ret;
    if (a > b){
        ret = a;
    }else{
        ret = b;
    }
    // 这个就是返回值
    return ret;
}

int main()
{
    // 接收返回的值
    int x = max(3,6);
    printf("%d\n", x);

    return 0;
}

第三に、関係が機能を持っています

ので、それに書かれたMAX関数上記のように:

  1. あなたのコードのCコンパイラのため、トップダウン分析
  2. MAX関数を見た後、彼は最高の機能への道を知っています
  3. マックスは、どのようなタイプを返し、どのように各パラメータ、いくつかのパラメータの関数で必要とされます
  4. それに書かれた主な機能した場合は、それ以前のステートメントを実行した独自の関数を定義する必要がありますが、今のコンパイラのほとんどは宣言できません
// 进行声明
int max(int a , int b);

int main()
{
    int x = max(3,6);
    printf("%d\n", x);
    return 0;
}


// 定义返回值的类型
int max(int a , int b)
{
    int ret;
    if (a > b){
        ret = a;
    }else{
        ret = b;
    }
    // 这个就是返回值
    return ret;
}

パラメータの受け渡し

不一致を入力?

  1. 関数呼び出しのタイプにパラメータの値と一致しない伝統的なC言語の最大の欠陥であります
  2. コンパイラは常に、あなたのキャストが良いです置くが、これは、あなたが期待するもの、おそらくではありません
  3. この点では非常に厳格な言語、C ++ / Javaの背後にあります
void cheer(int i)
{
    printf("cheer %d\n", i);
}

int main()
{
    double f = 8.4;
    cheer(f);  // 8
    cheer(2.0);  // 2

    return 0;
}

第四に、価値によって

  1. 各機能は、独自の可変領域を有し、このパラメータはまた、別の空間に位置しており、他の機能の関連されていません
  2. 過去には、「仮パラメータ」と呼ばれるパラメータの関数のパラメータリスト、ため、呼び出しは「実際のパラメータ」と呼ばれるパラメータのためであります

第五に、ローカル変数(ローカル変数)

  1. 各実行の機能、それはローカル変数と呼ばれ、それは、ユニークな多機能操作で、独立変数のためのスペース、このスペースで変数を作成します
  2. 定義関数内の変数はローカル変数であります
  3. パラメータはローカル変数です

変数の有効範囲と寿命

  1. 生涯:この変数が表示されるようになったときに、ときの終焉
  2. スコープ:どの程度のコードは、この変数にアクセスすることができます
  3. ローカル変数の場合:最初の二つの質問に対する答えはある---大括弧で

ルールローカル変数

  1. ローカル変数はブロック(中括弧)で定義されているのされています
    • 彼は、ファンクションブロック内で定義することができます
    • あなたはブロック文内で定義することができます
  2. このブロックに実行する前に、変数が存在しない、変数が消えたブロックを、去ります
  3. ブロックの外側で定義された変数は、内部にはまだ有効です
  4. ブロックそれが外側カバーの外側にある同じ名前の変数を定義
  5. 同じ名前の変数がブロック内に定義することはできません
  6. ローカル変数は、デフォルトでは初期化されません
  7. パラメータ機能の初期化を入力するとき

おすすめ

転載: www.cnblogs.com/mengd/p/11613873.html