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

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

DDD
リリース: 2024-12-19 04:26:08
オリジナル
995 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート