Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
ANSI 2.1.2.2.1 The semantics of the arguments to main
In Microsoft C, the function called at program startup is called main
. There's no prototype declared for main
, and it can be defined with zero, two, or three parameters:
int main( void )
int main( int argc, char *argv[] )
int main( int argc, char *argv[], char *envp[] )
The third line above, where main
accepts three parameters, is a Microsoft extension to the ANSI C standard. The third parameter, envp
, is an array of pointers to environment variables. The envp
array is terminated by a null pointer. For more information about main
and envp
, see The main
function and program execution.
The variable argc
never holds a negative value.
The array of strings ends with argv[argc]
, which contains a null pointer.
All elements of the argv
array are pointers to strings.
A program invoked with no command-line arguments will receive a value of 1 for argc
, as the name of the executable file is placed in argv[0]
. (In MS-DOS versions prior to 3.0, the executable-file name isn't available. The letter "C" is placed in argv[0]
.) Strings pointed to by argv[1]
through argv[argc - 1]
represent program parameters.
The parameters argc
and argv
are modifiable and retain their last-stored values between program startup and program termination.