Computer >> 컴퓨터 >  >> 프로그래밍 >> C 프로그래밍

C/C++ main 함수의 int argc, char *argv[]란 무엇인가?


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개의 인자가 출력된 것을 확인할 수 있습니다.