main函数我们使用的多关注的少,特别是参数,如何去用?
解决方案:
有C语言初学者朋友不知道怎么应用main函数的参数,其实也不难,只要对C语言的数组指针有了解,再加上一点讲解就知道了。
标准的main函数声明有如下两种方式:
int main(void); int main(int argc, char *argv[]);或者int main(int argc, char **argv);
后面两种本质上是一样,这两种其实就可以带参数了,其中第一个参数argc就表示main函数参数的个数,后面的第二个参数argv是一个字符串的数组,表示每一个具体的参数了,它是字符串形式。其中argv[0]表示这个应用程序的名字,argv[1]表示实际的第一个参数,argv[2]表示实际的第二个参数,后面依次类推,请看下面实例代码:
#include <stdio.h> #include <stdlib.h>
int main(int argc, char *argv[]) { int i;
printf("argc = %d\n", argc); for (i=0; i<argc; i++) { printf("argv[%d] = %s\n", i, argv[i]); }
system("pause"); return 0; }
我们运行一下,看看结果:
输入参数的时候需要注意:参数之间以空格(多个空格)或者TAB键分隔,参数内部不能用这两个,否则会被认为两个参数。所有的参数在main函数内部都是字符串,这里例子虽然我输入了1234,但仍是以字符串形式存在,要是我们想把它当做数值怎么办?那就将它转换成数值即可,比如:
int num = atoi(argv[2]);
可以看出,第一个参数就是这个程序自己的名字。 那么main函数参数有什么用?当然有了,尤其是控制台下面的程序,比如我们要复制一个文件,是不是在命令行下使用:
cp file1 file2
其实这里就是调用了一个名字为cp的系统自带的应用程序,后面的file1和file2就是它的参数,同样如果你要编写的函数需要这种类似让用户输入参数,就用上它了。
指导意见:
很多初学者都忽略了,main函数参数的问题,其实在编码的生活中用的还是很多,举个简单的例子。验证java版本经常输入
java -version 其实-version就是java这个可执行程序的参数,感兴趣的可以继续研究main函数的参数。