私はこのメイン関数に関して本当に混乱しています。
int main( int argc, char *argv[] ) {
/*statements*/
}
具体的には
char *argv[ ].
それは正確には何を表していますか?文字の配列へのポインタであることは知っていますが、その配列はどのように作成され、どのように正確に機能しますか? また、文字列は配列または文字であるため、その文字配列は文字列と同じですか?
私はこのメイン関数に関して本当に混乱しています。
int main( int argc, char *argv[] ) {
/*statements*/
}
具体的には
char *argv[ ].
それは正確には何を表していますか?文字の配列へのポインタであることは知っていますが、その配列はどのように作成され、どのように正確に機能しますか? また、文字列は配列または文字であるため、その文字配列は文字列と同じですか?
コマンドライン引数です。以下のように、プログラムの実行中にいくつかの値を渡すことができます。
#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*
重要な事実は、配列へのポインターではなく、文字へのポインターの配列であるということです。したがって、プログラムの引数リストの「単語」ごとに、文字へのポインターがいくつかあります。
これは、起動時にプログラムに渡されるパラメーターを指します。
例: ./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[][]
.
char *argv[]
のシンタックス シュガーですchar **argv
。 argv
null で終わる文字列へのポインタの配列です。オペレーティング システムは、関数を呼び出す前に配列を作成しますmain()
。
int argc = プログラム実行時の引数/パラメータの数 (プログラム名を含む)
char *argv[] = プログラム実行時の「文字列」の配列としての引数。これが私が考える方法です。
例:
C:\> echo hello world
引数 = 3
argv[0] = エコー
argv[1] = こんにちは
argv[2] = 世界
これは、java ファイルを実行することによって渡されるパラメーターを指します。メイン メソッドを持つ MyClass というクラスがある場合、java myclass ab を呼び出すと、この配列に a と b が含まれます。また、c または c++ で myCommand を呼び出す...