C/C++のmain関数におけるargcとargvの意味とは?使い方を解説
argcとargvとは何か
C/C++のmain関数に登場するargcは「argument count(引数の個数)」、argvは「argument values(引数の値)」の略です。これらは、プログラムの実行開始時にmain関数へ自動的に渡される変数で、コマンドラインからプログラムへ情報を受け渡すために使われます。
プログラムを実行するとき、次のように引数を指定することができます。
$ ./a.out hello
この例では「hello」が実行ファイルに対する引数となり、プログラム内からアクセスできるようになります。
サンプルコード
実際に、受け取った引数の個数と内容を表示するプログラムを見てみましょう。
#include<iostream>
using namespace std;
int main(int argc, char** argv) {
cout << "This program has " << argc << " arguments:" << endl;
for (int i = 0; i < argc; ++i) {
cout << argv[i] << endl;
}
return 0;
}このプログラムをコンパイルし、次のように2つの引数を付けて実行します。
$ ./a.out hello people
実行結果
実行すると、以下のような出力が得られます。
This program has 3 arguments: C:\Users\user\Desktop\hello.exe hello people
出力のとおり、引数は合計3つとしてカウントされています。ここで重要なポイントは、最初の引数(argv[0])には必ず実行中の実行ファイル自身のパスが格納されるという点です。そのため、ユーザーがコマンドラインで指定した引数は、argv[1]以降に順番に格納されます。この仕組みを理解しておくと、コマンドラインツールやバッチ処理など、柔軟なプログラムを作成する際に非常に役立ちます。
-
C/C++における三項演算子「? :」の使い方と仕組みを解説
三項演算子とは?「?」演算子は、3つのオペランド(被演算子)を必要とすることから三項演算子と呼ばれています。表記は「? :」という形で、「条件演算子」とも呼ばれます。この演算子を使うことで、コードの行数を削減でき、処理の効率も向上します。基本構文C言語における三項演算子の構文は以下の通りです。式1 ? 式2 : 式3まず式1が評価され、その結果が真(非ゼロ)であれば式2が、偽(ゼロ)であれば式3が実行されます。サンプルコード1#include <stdio.h> int main() { int a = -1; double b = 26.4231; in
-
C++のexplicitキーワードとは?暗黙的な型変換を防ぐ方法を解説
C++におけるexplicitキーワードは、コンストラクタに付与することで、暗黙的な型変換(implicit conversion)を防ぐために使用されます。意図しない型変換によるバグを未然に防ぎ、コードの安全性と可読性を高めるための重要な機能です。explicitキーワードがない場合の問題点まず、explicitキーワードを使っていないクラスの例を見てみましょう。class Foo { public: Foo(int n); // nバイトを確保してFooオブジェクトを生成 Foo(const char *p); // 文字列pでオブジェクトを初期化 };