C/C++에서 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;
}
위 프로그램을 컴파일한 뒤 다음과 같이 실행해 보겠습니다.
$ ./a.out hello people
출력 결과
프로그램을 실행하면 다음과 같은 출력을 얻을 수 있습니다.
This program has 3 arguments: C:\Users\user\Desktop\hello.exe hello people
참고: 첫 번째 인자(argv[0])는 항상 현재 실행 중인 실행 파일의 경로를 가리킵니다. 따라서 사용자가 직접 입력한 인자는 argv[1]부터 시작된다는 점을 기억해 두면 좋습니다. 위 예제에서도 실행 파일 경로, hello, people까지 총 3개의 인자가 출력된 것을 확인할 수 있습니다.