int argc,char *argv agrc表示参数的个数 argv储存参数 这个函数的意思是逐一输出参数 实际上,main函数也可以带参数。带参数main函数的定义格式如下: void main(int argc, char *argv[]) { ... ... } argc和argv是main函数的形式参数。这两个形式参数的类型是系统规定的。如果main函数要带参数,就是这两个类型的参数;否则main函数就没有参数。变量名称argc和argv是常规的名称,当然也可以换成其他名称。 那么,实际参数是如何传递给main函数的argc和argv的呢?我们知道,C程序在编译和链接后,都生成一个exe文件,执行该exe文件时,可以直接执行;也可以在命令行下带参数执行,命令行执行的形式为: 可执行文件名称 参数1 参数2 ... ... 参数n 可执行文件名称和参数、参数之间均使用空格隔开。例如,我们在DOS下运行copy c:\test.txt d:\test.txt,可执行文件名称为copy,参数1为字符串“c:\test.txt”,参数2为“d:\test.txt”。结果copy命令将c:\test.txt拷贝到d盘,目标文件取为test.txt。 如果按照这种方法执行,命令行字符串将作为实际参数传递给main函数。具体为: (1) 可执行文件名称和所有参数的个数之和传递给argc; (2) 可执行文件名称(包括路径名称)作为一个字符串,首地址被赋给argv[0],参数1也作为一个字符串,首地址被赋给argv[1],... ...依次类推。 例如,现在运行命令行(test是编译后的exe文件名称): C:\TC\test how are you 那么test工程的main函数参数argc=4; argv[0]将保存字符串"C:\TC\test"的首地址; argv[1]将保存字符串"how"的首地址; argv[2]将保存字符串"are"的首地址; argv[3]将保存字符串"you"的首地址; 下面的例子打印所有的argv参数: main(int argc, char *argv[]) { int i; printf("\nTotal %d arguments",argc); for(i=0;i<argc;i++) { printf("\nArgument %d = %s ",i+1, argv[i]); } } 如果编译后的exe文件名称为test,在DOS下运行C:\TC\test how are you,结果输出: Total 4 arguments Argument 1 = C:\TC\test.exe Argument 2 = how Argument 3 = are Argument 4 = you 我们也可以在调试状态下输入命令行参数,方法是: 在TurboC的Options菜单下有一个子菜单Arguments,选择该项并确定,弹出输入窗口;在输入窗口键入命令行参数即可。比如要调试上述的test,可以在输入窗口键入how are you。在调试过程中,可执行文件名称和参数字符串将被传递给main函数的形式参数。 在DOS系统下,人们常常希望在运行exe的同时,传递一些有用的信息。例如copy.exe,运行时将源文件名称和目的文件名称作为参数传入。利用指针数组argv作为main函数的形式参数,可以满足这种需要。
c语言中 main()函数的参数说明
最新推荐文章于 2024-09-15 17:25:08 发布