(int argc, char *argv[])는 뭘 하는 건가요?
조회수 24624회
저는 보통
int main()
같이 쓰는데
C++ IDE에서 작업하고 있으면
main함수를 자동으로 int main(int argc, char *argv[])
로 만들어줘요.
인자는 함수를 부를 때 넣는 건데 메인 함수는 자동으로 실행되니까 제가 메인 함수에 인자를 넘길 수가 없는 거 아닌가요? 왜 저런 걸 쓰죠??
1 답변
-
C/C프로그램이 명령어 인자를(command line argument)를 받기 위해 씁니다.
argc
는argv
가 가리키고 있는 스트링 개수를 나타냅니다.보통은
argc(argument count)
,argv(argument vector)
로 쓰는 게 관행인데,(int num_args, char** arg_strings)
같이 다른identifier
를 써도 괜찮습니다.예를 들면
#include <iostream> int main(int argc, char** argv) { std::cout << "Have " << argc << " arguments:" << std::endl; for (int i = 0; i < argc; ++i) { //인자 개수(argc)만큼 출력 std::cout << argv[i] << std::endl; } }
코드를
./test a1 b2 c3
같이 실행하면Have 4 arguments: ./test a1 b2 c3
가 출력됩니다.
댓글 입력