【编程基础第九讲】main函数也有参数?

存在问题:

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函数的参数。

原文发布于微信公众号 - 程序员互动联盟(coder_online)

原文发表时间:2015-11-12

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Java开发者杂谈

Ruby(1):入门

安装:   一般来说linux会自动装ruby,可以通过:   ruby -v 来查看ruby版本   直接使用ruby命令的话,是用来执行ruby文件的。如果...

3578
来自专栏黑泽君的专栏

Java培训实战教程之Java基础知识精华部分(一)(二)(三)

682
来自专栏CRPER折腾记

ES6折腾记- 模板字符串

总体来说,模板字符串的出现了,让我们的字符串拼接写的更加优美了;相当简易实用;但是这货并不是万能的,有部分unicode编码字符会造成编译报错

963
来自专栏wym

18年暑假多校赛第一场 1002

http://acm.hdu.edu.cn/showproblem.php?pid=6299

831
来自专栏python3

习题30:While循环

while循环有一个问题,那就是有时它永不结束,不过在其它的情况下你的循环总需要有一个结束点

751
来自专栏章鱼的慢慢技术路

《算法图解》第二章笔记与课后练习_选择排序算法

1583
来自专栏灯塔大数据

技术 | Python从零开始系列连载(二十六)

为了解答大家学习Python时遇到各种常见问题,小灯塔特地整理了一系列从零开始的入门到熟练的系列连载,每周五准时推出,欢迎大家学积极学习转载~

1525
来自专栏章鱼的慢慢技术路

《算法图解》第二章笔记与课后练习

17510
来自专栏Celebi的专栏

C/C++ 学习笔记二(变量、表达式)

工作中经常使用到C/C++,为对C有个比较深刻的了解,重新拾起学习C的任务。在看书的同时,记录下思考的过程,也记录下重要的知识点。

1590
来自专栏lgp20151222

JQuery跳出each循环的方法(包含数组遍历)

break----用return false;  continue --用return ture;

1023

扫码关注云+社区