[解決済み] int argc, char *argv[] とはどういう意味ですか?
2022-03-16 03:57:25
質問
多くのC++のIDEやコンパイラでは、main関数を生成するとき、次のように表示されます。
int main(int argc, char *argv[])
IDEを使わずに、コマンドラインコンパイラだけでC++をコーディングするとき、私はタイプします。
int main()
をパラメータなしで実行します。 これは何を意味し、私のプログラムにとって不可欠なのでしょうか?
どのように解決するのですか?
argv
と
argc
は、コマンドライン引数が
main()
CやC++では
argc
が指す文字列の数になります。
argv
. 事実上すべての実装では、プログラムの名前を配列の先頭に付けるので、(実際には)これは1+引数の数になります。
変数の名前は
argc
(
引数数
) と
argv
(
引数ベクトル
) を使うことが慣例となっていますが、有効な識別子であれば何でも構いません。
int main(int num_args, char** arg_strings)
も同様に有効である。
また、完全に省略することも可能で、その場合は
int main()
コマンドライン引数を処理するつもりがない場合。
次のプログラムを試してみてください。
#include <iostream>
int main(int argc, char** argv) {
std::cout << "Have " << argc << " arguments:" << std::endl;
for (int i = 0; i < argc; ++i) {
std::cout << argv[i] << std::endl;
}
}
で実行する
./test a1 b2 c3
を出力します。
Have 4 arguments:
./test
a1
b2
c3
関連
-
[解決済み】C++ - 解放されるポインタが割り当てられていないエラー
-
[解決済み】文字列関数で'char const*'のインスタンスを投げた後に呼び出されるterminate [閉店].
-
[解決済み】エラー:free(): 次のサイズが無効です(fast)。
-
[解決済み] スタックアロケーションにより初期化されていない値が作成された
-
[解決済み] explicit キーワードの意味は?
-
[解決済み] C++11では、標準化されたメモリモデルが導入されました。その意味するところは?そして、C++プログラミングにどのような影響を与えるのでしょうか?
-
[解決済み] const int*、const int * const、int const *の違いは何ですか?
-
[解決済み] C++11のT&&(ダブルアンパサンド)の意味とは?
-
[解決済み] 実際の関数定義と比較して)パラメータがない関数がコンパイルされるのはなぜですか?
-
[解決済み] Intel CPU の _mm_popcnt_u64 で、32 ビットのループカウンターを 64 ビットに置き換えると、パフォーマンスが著しく低下します。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】coutはstdのメンバではない
-
[解決済み】Visual Studio 2015で「非標準の構文; '&'を使用してメンバーへのポインターを作成します」エラー
-
[解決済み】LLVMで暗黙のうちに削除されたコピーコンストラクタの呼び出し
-
[解決済み】C++でランダムな2倍数を生成する
-
[解決済み】fpermissiveフラグは何をするのですか?
-
[解決済み] 非静的データメンバの無効な使用
-
[解決済み】システムが指定されたファイルを見つけられませんでした。
-
[解決済み】デバッグアサーションに失敗しました
-
[解決済み] 警告:暗黙の定数変換でのオーバーフロー
-
[解決済み】エラー。引数リストに一致するコンストラクタのインスタンスがない