你总用windows图形界面 *** 作,所以一般用不到参数。通常在命令行中启动程序时,需要输入一些参数。
argc是参数个数,argv是个字符串数组,也就是其中每个元素都是一个字符串char。当你想要访问一个数组中全部参数时,必然要知道参数个数,不然你怎么访问?
argv中第一个参数argv[0]是应用程序所在的路径,无须你输入,而你输入的a,b,c是argv[1],argv[2],argv[3]。
argc和argv的作用是接收命令行参数的,假设你的程序编译链接后的文件是ccccexe ,那么就可以用ccccexe p1 p2的格式运行该程序, 字符串p1,p2就是程序的参数,不需要在程序运行时才输入。
还有为什么这段程序它要用argc==2来判断,为什么cvloadimage函数里第一个参数是argv[1]
因为第一个参数是这个可执行文件本身,虽然并没有出现在命令行里,所以没有参数时argc==1,argv[0]就是该可执行文件的文件名字符串,那么有一个参数时,argc==2,参数字符串就是argv[1]了,多个参数以此类推
命令行参数是你从命令行运行这个程序时在程序名后传递的参数。假如程序生成的可执行文件名为reductoexe,那么从命令行执行程序时可以用如下的方式传递参数:reducto -a -b -c。这会执行reductoexe并将三个参数-a、-b和-c传递给它。此时main函数中argc值为3,argv数组的内容是argv[0]="-a", argv[1]="-b", argv[2]="-c"。
这是C/C++的一重要函数,叫主函数,执行函数的时候用。
int argc是记录你输入在命令行(你题目中说的 *** 作就是命令行输入)上的字符串个数;argv[]是指针数组,存放输入在命令行上的命令(字符串)。
第一个int argc,是记录你输入在命令行上的字符串个数;第二个argv[]是个指针数组。
类似linux shell里面使用的指令的格式
比如说,我执行cp 123c 456c(将123c拷贝为456c)
这样在windows相当于执行了cpexe 123c 456c,(假设window)即调用了cpexe这个文件,并把123c 456c作为参数传入其中。
而在编译之前cpexe应当是一个c文件,而其中的main函数为int main(int argc, char argv);
这样由于指令为cpexe 123c 456c,main函数中argc就为3(3个参数),argv[0]="cpexe",argv[1]="123c",argv[2] = "456c",这样我们可以在main函数中对于这些参数进行处理,也就是可以这样实现cp(拷贝这个功能)。
而你说的也类似,相当于传入那几个参数,并在函数中处理参数,并实现了相应的功能。
作用是告诉编译器,代码不会用传进来的这个参数,这样就可以产生优化的代码,在程序运行
的时候,第一个参数就不会被压入栈中,做无用功。简而言之就是为了优化代码。相似的用法
还可以用到函数上:比如,如果你不关心一个函数的返回值,那么可以这样做:
(void)function()。
main函数的argc形参代表命令行的参数个数,argv形参用来存储每个参数的字符串。
例如,在命令行中输入exampleexe -a -b -c c:\testtxt
则主函数中有-a、-b、-c、c:\testtxt四个参数,故argc=4,argv依次存放每个参数的字符串,即argv[0]="-a",argv[1]="-b",argv[2]="-c",argv[3]="c:\testtxt"。
以上就是关于C语言中的int main(int argc,char *argv[]) 问题全部的内容,包括:C语言中的int main(int argc,char *argv[]) 问题、关于C语言的 argc和argv 问题、C语言argc 怎么判断它的值啊 为什么一开始就能确定 怎么得到的 他测试的命令行参数 指的是等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)