argc is the number of arguments passed to the program, from command line
argc can have values >= 1, first argument is always the name of the program itself.
argv is the array of command line arguments passed to the program. argv[0] is always the name of the program. argv[1] onwards are the actual parameters passed
example
prompt> testprog argu argument
In this case the argc = 3 argv[0] = testprog argv[1] = argu argv[2] = argument
You may define main either as having two parameters or having no parameters or in implementation-defined manner.
If you do not need parameters then you may define main without them.