1

私はこのメイン関数に関して本当に混乱しています。

int main( int argc, char *argv[] ) {
/*statements*/
}

具体的には

char *argv[ ].

それは正確には何を表していますか?文字の配列へのポインタであることは知っていますが、その配列はどのように作成され、どのように正確に機能しますか? また、文字列は配列または文字であるため、その文字配列は文字列と同じですか?

4

7 に答える 7

2

コマンドライン引数です。以下のように、プログラムの実行中にいくつかの値を渡すことができます。

#include<stdio.h>
int main(int count,char *argv[]){
    int i=0;
    for(i=0;i<count;i++)
         printf("\n%s",argv[i]);
    return 0;
}

//ファイルを arg.c として保存

コマンドラインで

C:\tc\bin>arg c JS

出力:

*c*
*JS*
于 2013-10-17T06:01:42.910 に答える
1

重要な事実は、配列へのポインターではなく、文字へのポインターの配列であるということです。したがって、プログラムの引数リストの「単語」ごとに、文字へのポインターがいくつかあります。

于 2013-10-17T06:01:41.383 に答える
1

これは、起動時にプログラムに渡されるパラメーターを指します。

例: ./a.out ととたた

printf("argv[0]: %s, argv[1]: %s, argv[2]: %s, argv[3]: %s", argv[0], argv[1], argv[2], argv[3]);

出力:

argv[0]: ./a.out , argv[1]: toto, argv[2]: tata, argv[3]: (null)

argc は、argv に格納されている引数の数です。

これは C 標準の一部であるため、作成者を気にする必要はありません。本当に知りたい場合は、_start 関数に関する情報を検索してください。

argv は文字列の配列であり、個々の文字列はそれぞれ char の自己配列です。

argv が次のように表示されることがあります:**argvまたはargv[][].

于 2013-10-17T05:59:19.280 に答える
1

char *argv[]のシンタックス シュガーですchar **argvargvnull で終わる文字列へのポインタの配列です。オペレーティング システムは、関数を呼び出す前に配列を作成しますmain()

于 2013-10-17T05:59:29.287 に答える
1

int argc = プログラム実行時の引数/パラメータの数 (プログラム名を含む)

char *argv[] = プログラム実行時の「文字列」の配列としての引数。これが私が考える方法です。

例:

C:\> echo hello world

引数 = 3

argv[0] = エコー

argv[1] = こんにちは

argv[2] = 世界

于 2013-10-17T06:00:01.313 に答える
1

これは、java ファイルを実行することによって渡されるパラメーターを指します。メイン メソッドを持つ MyClass というクラスがある場合、java myclass ab を呼び出すと、この配列に a と b が含まれます。また、c または c++ で myCommand を呼び出す...

于 2013-10-17T06:00:49.210 に答える