我想问下关于main()函数的问题

来源:百度知道 编辑:UC知道 时间:2024/05/27 14:04:21
我在有的书上看到这样写
#include <stdio.h>

void main()
{

}
可是我想问个问题?为什么main后面的()里面不添加任何东西,还是应该加什么?为什么?

1.main(int argc, char *argv[])
这两个参数用于在运行程序时,从外部给程序传递参数,其中argc中保存了参数的个数,argv中分别保存了各个参数.

例如一个程序的main()函数头部形如int main(int argc, char *argv[]),编译链接后生成的可执行文件名为a.exe,那么请注意下面的调用:

a.exe abc def

在上面的命令行中,a.exe是要运行的程序名称,后面的abc和def就是传入程序的两个参数,这两个参数就通过argc和argv传入程序,注意这些参数都是字符串。

通过上面的调用,在这个程序中,argc=3,a.exe是第一个参数,这个字符串将保存在argv[0]中,abc和def分别是第二和第三个参数,它们分别被保存在argv[1]和argv[2]中

2.也可以直接使用main(),此时表示main函数不会接受外部给程序传递的参数;

不用加,因为这就是你程序的入口函数,没必要传什么参数

当然有必要的时候,也可以加,等你用到的时候就知道了

有需要再加,空也就是什么也不做!

main()主函数
每一C 程序都 必须 有一main()函数, 可以根据自己的爱好把它放在程序的某
个地方。有些程序员把它放在最前面, 而另一些程序员把它放在最后面, 无论放
在哪个地方, 以下几点说明都是适合的。
1. main() 参数
在Turbo C2.0启动过程中, 传递main()函数三个参数: argc, argv和env。
* argc: 整数, 为传给main()的命令行参数个数。
* argv: 字符串数组。
在DOS 3.X 版本中, argv[0] 为程序运行的全路径名; 对DOS 3.0
以下的版本, argv[0]为空串("") 。
argv[1] 为在DOS命令行中执行程序名后的第一个字符串;
argv[2] 为执行程序名后的第二个字符串;
...