自变量说明
main
和 wmain
函数中的 argc
参数是一个整数,用来指定从命令行传递到程序的参数的数量。 由于程序名被视为实参,因此 argc
的值至少有一个。
备注
argv
形参是一个指针数组,这些指针指向表示程序实参的以 null 结尾的字符串。 该数组的每个元素指向传递给 main
(或 wmain
)的参数的字符串表示形式。 (有关数组的信息,请参阅数组声明。)argv
参数可以声明为指向类型 char
(char *argv[]
) 的指针数组,也可以声明为一个指针来指向多个指向类型 char
(char **argv
) 的指针。 对于 wmain
,argv
参数可以声明为指向类型 wchar_t
(wchar_t *argv[]
) 的指针数组,也可以声明为一个指针来指向多个指向类型 wchar_t
(wchar_t **argv
) 的指针。
按照约定,argv[0]
是用于调用程序的命令。 但是,可以使用 CreateProcess
来生成进程,并且如果同时使用了第一个和第二个参数(lpApplicationName
和 lpCommandLine
),argv[0]
可能不是可执行名称;请使用 GetModuleFileName
来检索可执行名称。
最后一个指针 (argv[argc]
) 是 NULL
。 (有关获取环境变量信息的替代方法,请参阅《运行时库参考》 中的 getenvgetenv
。)
Microsoft 专用
envp
参数是以 null 结尾的字符串的数组,这些字符串表示在用户的环境变量中设置的值。 envp
参数可以声明为 char
(char *envp[]
) 的指针数组,或者声明为一个指针(指向指向 char
(char **envp
) 的多个指针)。 在 wmain
函数中,envp
参数可以声明为指向 wchar_t
(wchar_t *envp[]
) 的指针数组,也可以声明为一个指针来指向多个指向 wchar_t
(wchar_t **envp
) 的指针。 数组的末尾由 NULL*
指针来指示。 传递给 main
或 wmain
的环境块是当前环境的“冻结”副本。 如果随后通过调用 _putenv
或 _wputenv
来更改环境,则当前环境(由 getenv
/_wgetenv
以及 _environ
或 _wenviron
变量返回)将发生更改,但 envp
指向的块不会更改。 envp
参数在 C 中是与 ANSI/ISO C89 兼容的,但在 C++ 中是 Microsoft 扩展。
结束 Microsoft 专用