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

C++에서 int argc, char *argv[]의 의미 완벽 정리

C++ 프로그램의 main 함수에서 자주 보이는 int argcchar *argv[]는 각각 다음과 같은 의미를 가집니다.

  • argc: argument count(인자 개수)의 줄임말로, 프로그램에 전달된 인자의 총 개수를 나타냅니다.
  • argv: argument values(인자 값)의 줄임말로, 전달된 인자들을 문자열 배열 형태로 저장합니다.

이 두 변수는 프로그램이 실행을 시작할 때 main 함수로 자동으로 전달됩니다. 프로그램을 실행할 때 명령줄(command line)을 통해 인자를 함께 넘겨줄 수 있는데, 예를 들어 다음과 같습니다.

$ ./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

출력 결과를 보면 인자 개수가 3개로 표시됩니다. 그 이유는 argv[0]에는 항상 프로그램 이름(실행 파일 경로)이 저장되고, 실제로 사용자가 입력한 hellopeople이 각각 argv[1], argv[2]에 담기기 때문입니다. 즉, argc에는 프로그램 이름까지 포함된 개수가 들어간다는 점을 기억하면 됩니다.