C-main函数剖析。

对于main函数,我想任何一个接触到C语言的都不会陌生,但是说起main()函数有参数,你可能会产生很多疑问了。
首先,我们来看下msdn,这个里面对main()函数有详细的说明。

在这里,我们可以看到main()函数其实是含有三个参数的,分别是

int argc, char *argv[ ], char *envp[ ]

这三个参数其实就是main函数的参数。在c的编译器中,一般是允许main函数是没有参数的。

1.argc (argument count)
这第一个参数是int类型的argc,argc是一个整数,从字面上的意思我们就知道,他说的是给参数计数,指定有多少个参数被传递给命令行的程序。argc至少是1。
2.argv(argument value)
argv 第二个参数是一个指向字符串的指针数组。命令行中的每个字符串被存储到内存中,并且分配一个指针指向它。它存放了命令行的参数。
在通常,系统使用空格把各个字符串隔开,然后把程序本身的名字赋给argv[0],把系统最后一个字符串赋给argv[1]。
3.envp
这个不常用,用来存放系统的环境变量,并且是以NULL结尾。
envp可以是char*[]类型也可以是char**类型,本文上面的例子使用的是前者;如果使用宽字符集,则应使用wmain代替main,并使用wchar*[]或wchar**类型的envp,在程序运行过程中,envp所存的环境变量是以字符串数组保存,当程序运行时需要环境变量做参考时就需要它,并且,当你更改了环境变量想要恢复,也可以到这个里面去寻找。

初学小白,希望大家多多提意见!!

你可能感兴趣的:(C语言)