0

関数のプロトタイプか

int sum_array(int array[], int arr_length);  

int sum_array(int [], int arr_length);  

似ている?
はいの場合、どういうint []意味ですか?
位置を入れ替えて上記のプロトタイプを定義できますか?

 int sum_array( int arr_length, int array[]); 

?
:ポインタについてはわかりません(申し訳ありません)。

4

2 に答える 2

4

両方のプロトタイプは同じです。最初のものは、最初のパラメーターに名前を付けるだけです:

int sum_array(int array[], int arr_length);

また

int sum_array(int [], int arr_length); 

同じだ。プロトタイプでパラメーターに名前を付けるのは、情報提供のみを目的としています。

同様に、次のことができます。

int sum_array(int [], int);

その後、実装は次のようになります。

int sum_array(int array[], int arr_length)
{ ... }

しかし、パラメータを交換することはできません。それは同じことではありません。パラメータを交換する場合、実装とこの関数の呼び出しでもパラメータを交換する必要があります。

于 2013-06-27T20:16:49.310 に答える
2

C 標準では、関数プロトタイプでパラメーターの識別子を宣言してもよいと規定されていますが、そうする必要はありません。

識別子 ... は説明目的でのみ宣言され、宣言の最後で範囲外になります

最初の質問に答えると、最初の 2 つのプロトタイプには基本的に違いはありません。Andint []は「整数の配列」を意味し、同様に、 「」int array[]として識別される整数の配列を意味しますarray

3 番目のプロトタイプも機能しますが、変数は逆の順序でスタックにプッシュされます。プロトタイプと定義が同じ順序を使用している限り、これを行うことができます。

于 2013-06-27T20:17:37.517 に答える