ホームページ >バックエンド開発 >C++ >C では配列はどのように関数に渡されるのでしょうか?

C では配列はどのように関数に渡されるのでしょうか?

DDD
DDDオリジナル
2024-12-19 04:26:08996ブラウズ

How Are Arrays Passed to Functions in C  ?

C で関数に配列を渡す

C では、配列を参照または値で関数に渡すことができます。ただし、配列は通常の変数とは異なり、単に配列名を関数に渡して、それを特定の型の単一の要素のように扱うことはできません。代わりに、配列名は配列の最初の要素へのポインタとして扱われます。

したがって、関数パラメータを配列として宣言すると、実際にはそのタイプの要素へのポインタを宣言することになります。たとえば、次の関数宣言は、int の配列と配列の長さを表す整数を受け取る関数を宣言します。

void printarray(int arg[], int length);

main 関数から printarray 関数への呼び出しが行われると、配列の名前が引数として渡されます。配列の名前は、配列の最初の要素のアドレスを指します。これは、配列の最初の要素へのポインターを渡すことと同じです。

以下のコードでは、変数 firstarray は 3 つの整数の配列です。変数 Secondarray は 5 つの整数の配列です。 printarray 関数は 2 回呼び出されます。1 回目は firstarray 引数を使用して、もう 1 回は Secondarray 引数を使用して呼び出されます。 firstarray 引数の長さは 3 で、2 番目のarray 引数の長さは 5 です。

int firstarray[] = {5, 10, 15};
int secondarray[] = {2, 4, 6, 8, 10};
printarray(firstarray, 3);
printarray(secondarray, 5);

printarray 関数では、arg パラメータは、渡される配列の最初の要素へのポインタです。 length パラメーターは、渡される配列の長さです。 printarray 関数は、配列要素の値を出力します。

void printarray (int arg[], int length) {
    for (int n = 0; n < length; n++) {
        cout << arg[n] << " ";
    }
    cout << "\n";
}

コードの出力は次のとおりです:

5 10 15
2 4 6 8 10

以上がC では配列はどのように関数に渡されるのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。