搜索
您的当前位置:首页正文

int main(int argc,char argv)详解

2024-03-29 来源:趣尚旅游网


1.int main(int argc,char* argv[])详解

int main( int argc , char *argv[] )

main()函数一般用int或者void形的。我比较喜欢用int型定义main。因为在结束的时候可以返回给操作系统一个值以表示执行情况。

int argc

这个东东用来表示你在命令行下输入命令的时候,一共有多少个参数。比方说你的程序编译后,可执行文件是test.exe

D:\c2>test

这个时候,argc的值是1

但是

D:\c2>test.exe myarg1 myarg2

的话,argc的值是3。也就是 命令名 加上两个参数,一共三个参数

char *argv[]

这个东东用来取得你所输入的参数

D:\c2>test

这个时候,argc的值是1,argv[0]的值是 \"test\"

D:\c2>test myarg1 myarg2

这个时候,argc的值是3,argc[0]的值是\"test\",argc[1]的值是\"myarg1\",argc[2]的值是\"myarg2\"。

这个东东一般用来为程序提供非常重要的信息,如:数据文件名,等等。

如:copy a.c b.txt

这个时候,a.c和b.txt就是所谓的“非常重要的信息”。不指定这两个文件,你没法进行拷贝。

当你的程序用到argc和argv这两个参数的时候,可以简单地通过判断argc的值,来看看程序的参数是否符合要求。

2.int main(int argc, char* argv[])里的(int argc, char* argv[])是什么意思?为什么要用这个?

2.1很多程序都是带参数运行的,比如WINDOWS命令行下的很多实用程序。参数增加了程序的灵活性。

你可以在“开始”->“运行”中输入cmd进入命令行。

比如一个叫做del的命令,(删除文件),其实就是del.exe,它带参数的,完整的命令格式可以是

del readme.txt

这个命令将删除当前路径下的readme.txt文件(如果有的话);

此时,运行的程序就是del.exe,而readme.txt就是它的参数,假设一个程序的main函数不带任何参数,那么很显然,它仍可以运行,只是,不接收参数罢啦。

2.2 void main(int argc, char* argv[ ])

假设程序编译成为 cp.exe

然后在命令行中输入

c:\\>cp.exe doc1.txt doc2.txt

这行中有三个字符串分别为 cp.exe doc1.txt doc2.txt

则argc为3,即argc是命令行中参数的个数。

char *argv[]为一个字符型指针数组。argv[]每个元素都是字符型指针变量。指向命令和参数字符串的首地址。

argv[0] 存放字符串\"cp.exe\"首地址

argv[1] 存放字符串\"doc1.txt\"首地址

argv[2] 存放字符串\"doc2.txt\"首地址

即命令行中各字符串首地址保存在 *argv[]中对应的元素中

归纳:

简单说,这两个形参就是用于接受参数和记录参数信息的。

因篇幅问题不能全部显示,请点此查看更多更全内容

Top