void main(int argc, char *argv[])这句话中括号中的int argc,char *argv[]是可以省略的,这是就是命令行参数,argc的值就是你命令行参数的项数,你是windows环境么?windows下编译好一个程序是直接双击运行,但是你找到文件目录,可以从控制台输入文件名执行的,那么你输入在控制台的内容就叫做命令行参数,包括文件名和后面的内容,以空格隔开,比如你这个程序叫2-5.那么当你在控制台输入2-5的时候,argc就为1,当你输入2-5 file1的时候,argc就为2,现在知道为什么argc为4了吧。至于argv[],这是一个字符串数组,因为argc为4,所以定义了一个字符串数组为argv[4],有四个元素,分别为argv[0],argv[1],argv[2],argv[3],p = argv[1]。就是file1啦,puts(p+1),地址向右偏移一位,所以前面的f就不见啦
所谓的命令行参数就是传递给main函数的参数一般都是固定形式 main(int argc,char *argv[ ])
第一个参数表示参数的个数,第二个参数是一个字符串数组表示参数项.
其实不懂的话打开vc然后把这个程序写上,然后单步调试运行一下就明白了.
学习要掌握方法哦。 .