-1

重複の可能性:
C では、配列ポインターまたはポインターとして使用されますか?

C++ では、デフォルトの main 関数は char* argv[] のような引数を持つことができます。char** および char* argv[100] との違いは何ですか?

4

3 に答える 3

5

関数のパラメータに違いはありません。他の状況では、1 つ目はポインターを宣言し、2 つ目は配列を宣言します。

于 2012-10-22T13:19:06.833 に答える
1

char**へのポインタへのポインタcharです。

2 番目char *argv[100]は、char へのポインターの配列です。

しかし、配列を関数に渡すと、それらはポインターに減衰します。

于 2012-10-22T13:20:06.530 に答える
1

char** argv: char* argv[100] と同じ動作を引き出すには、char ポインターを格納するための領域を動的に割り当てる必要があります。例えば:(*argv) = new char[100];

二重ポインタは、C++ に固有の非常に柔軟なデータ型であり、非常識な速度と非常識なバグを与える可能性があります。一般に、配列のサイズがわかっている場合は、動的メモリ割り当てを避けるのが最善です。

于 2012-10-22T13:30:34.933 に答える