编程问答
linux命令行参数 -凯发ag旗舰厅登录网址下载
在大学里面,老师一般会这样教,定义main 函数应该是这样的:
甚至是这样的:
但是其实在 linux 下,一个正确的main 函数应该被定义为如下:
大家可以看到,main 函数中有两个参数,分别是 argc 和 argv。但是在 c 语言中规定,main 函数是不能被别的函数调用的,那究竟是谁传递了参数给main 函数呢?
答案是:命令行
当我们在命令执行程序时,其实就是在给main 函数传递参数,其中 argc 的全称是 argument count,即命令行的参数的数目。 argv 的全称是 argument value,即命令行的参数对应的值。
我们先来研究一下这个 argc 吧,注意,这个 argc 指的不是额外的参数,而是包含执行文件在内的参数个数。举个例子吧,假设有程序如下:
执行程序结果:
命令行的参数是以空格分开,大家可以看到,argc 就是参数个数,包含执行的文件在内。
那么再来看看这个 argv,类型是 char *[],如果有一定 c 语言功底的同学应该知道,这个是一个字符指针数组,通俗一点来讲,就是一个数组名字叫 argv,并且数组中放着很多个字符串:
那么究竟是谁放在里面呢?没错,就是命令参数的值,以上面的实例为例子
gec@ubuntu:~$ ./example one two three 代表当前有 4 个参数,那么 argv 的数组中就应该是这样的:
那么数组访问每个成员,我们在大学里面已经学习过了,使用下标就可以访问:argv[0]为数组第一个成员,argv[1]为数组第二个成员,如此类推。
那么接下来写个程序验证一下:
执行的结果:
tomorrow 星辰 , 凯发ag旗舰厅登录网址下载的版权所有丨如未注明 , 均为原创丨本网站采用by-nc-sa协议进行授权
转载请注明原文链接:linux c 语言:main 函数的命令行传参 喜欢 (6)
总结
以上是凯发ag旗舰厅登录网址下载为你收集整理的linux命令行参数的全部内容,希望文章能够帮你解决所遇到的问题。
如果觉得凯发ag旗舰厅登录网址下载网站内容还不错,欢迎将凯发ag旗舰厅登录网址下载推荐给好友。
- 上一篇:
- 下一篇: linux高级篇——io系统编程