main函数的参数设置
2016-06-20 22:39
375 查看
概括:c程序在运行的时候,main中有两个参数,分别是int argc 和后面的 char * argv[],前面的不用输入,会自动统计你后面所输入的字符串的数量(空格区分),argv[0]保存的是文件路径和名字,所有argc>=1;
原文转自:http://blog.csdn.net/wu_lai_314/article/details/8454394
C程序最大的特点就是所有的程序都是用函数来装配的。main()称之为主函数,是所有程
序运行的入口。其余函数分为有参或无参两种,均由main()函数或其它一般函数调用,若调用
的是有参函数,则参数在调用时传递。
C/C++语言中的main函数,经常带有参数argc,argv,如下:
从函数参数的形式上看,包含一个整型和一个指针数组。当一个C/C++的源程序经过编译、链接后,会生成扩展名为.EXE的可执行文件,这是可以在操作系统下直接运行的文件,换句话说,就是由系统来启动运行的。对main()函数既然不能由其它函数调用和传递参数,就只能由
系统在启动运行时传递参数了。
在操作系统环境下,一条完整的运行命令应包括两部分:命令与相应的参数。其格式为:
命令参数1参数2....参数n¿
此格式也称为命令行。命令行中的命令就是可执行文件的文件名,其后所跟参数需用空格分隔,并为对命令的进一步补充,也即是传递给main()函数的参数。
命令行与main()函数的参数存在如下的关系:
设命令行为:program str1 str2 str3 str4 str5
其中program为文件名,也就是一个由program.c经编译、链接后生成的可执行文件program.exe,其后各跟5个参数。对main()函数来说,它的参数argc记录了命令行中命令与参数的个数,共6个,指针数组的大小由参数argc的值决定,即为char*argv[6],指针数组的取值情况如图6-15所示。
数组的各指针分别指向一个字符串。应当引起注意的是接收到的指针数组的各指针是从命令行的开始接收的,首先接收到的是命令,其后
才是参数。
下面的程序演示argc和argv的使用:
[cpp] view
plain copy
#include<iostream>
using namespace std;
int main(int argc,char **argv){
for(int i=0;i<argc;i++)
cout<<"Argument "<<i<<" is "<<argv[i]<<endl;
return EXIT_SUCCESS;
}
该程序编译运行成功,产生了 test.exe 文件,在打开DOS窗口,用cd命令进入到 test.exe 文件夹下 ,在DOS下输入如下命令:
test.exe
hello! this is a test!
则运行的结果如下:
原文转自:http://blog.csdn.net/wu_lai_314/article/details/8454394
C程序最大的特点就是所有的程序都是用函数来装配的。main()称之为主函数,是所有程
序运行的入口。其余函数分为有参或无参两种,均由main()函数或其它一般函数调用,若调用
的是有参函数,则参数在调用时传递。
C/C++语言中的main函数,经常带有参数argc,argv,如下:
int main(int argc, char** argv)
int main(int argc, char* argv[])
从函数参数的形式上看,包含一个整型和一个指针数组。当一个C/C++的源程序经过编译、链接后,会生成扩展名为.EXE的可执行文件,这是可以在操作系统下直接运行的文件,换句话说,就是由系统来启动运行的。对main()函数既然不能由其它函数调用和传递参数,就只能由
系统在启动运行时传递参数了。
在操作系统环境下,一条完整的运行命令应包括两部分:命令与相应的参数。其格式为:
命令参数1参数2....参数n¿
此格式也称为命令行。命令行中的命令就是可执行文件的文件名,其后所跟参数需用空格分隔,并为对命令的进一步补充,也即是传递给main()函数的参数。
命令行与main()函数的参数存在如下的关系:
设命令行为:program str1 str2 str3 str4 str5
其中program为文件名,也就是一个由program.c经编译、链接后生成的可执行文件program.exe,其后各跟5个参数。对main()函数来说,它的参数argc记录了命令行中命令与参数的个数,共6个,指针数组的大小由参数argc的值决定,即为char*argv[6],指针数组的取值情况如图6-15所示。
数组的各指针分别指向一个字符串。应当引起注意的是接收到的指针数组的各指针是从命令行的开始接收的,首先接收到的是命令,其后
才是参数。
下面的程序演示argc和argv的使用:
[cpp] view
plain copy
#include<iostream>
using namespace std;
int main(int argc,char **argv){
for(int i=0;i<argc;i++)
cout<<"Argument "<<i<<" is "<<argv[i]<<endl;
return EXIT_SUCCESS;
}
该程序编译运行成功,产生了 test.exe 文件,在打开DOS窗口,用cd命令进入到 test.exe 文件夹下 ,在DOS下输入如下命令:
test.exe
hello! this is a test!
则运行的结果如下:
相关文章推荐
- [不错]AI是什么 将带我们去哪儿?
- 文章出自http://blog.csdn.net/loongggdroid/article/details/17616509
- UVa 818Cutting Chains (暴力dfs+位运算+二进制法)
- DailogFragment使用
- “DllMain 已经在 MSVCRTD.lib(dllmain.obj) 中定义以及找到一个或多个多重定义的符号”错误的解决方法
- 1021 - Painful Bases
- 马斯克的AI野心——OpenAI Gym系统深度解析
- [Leetcode]Nim Game
- Block Chain 区块链
- 谷歌约束控件(ConstraintLayout)扁平化布局入门
- 了解使用Android ConstraintLayout (Google I/O 2016)
- 人工智能革命:人类将永生或者灭绝
- 性能瞬间飙升!教你如何组RAID0磁盘阵列
- 性能瞬间飙升!教你如何组RAID0磁盘阵列
- extmail日常维护
- hdu 1021 Fibonacci Again
- 写email那些事
- 【leetcode】217. Contains Duplicate
- raid0+磁盘加密
- DevExpress Grid中实现点击Detail获得Master rowHandle的方法