main函数的参数问题
2017-06-05 00:00
204 查看
main函数可以不带参数,也可以带参数,这个参数可以认为是 main函数的形式参数。
C语言还规定argc(第一个形参)必须是整型变量,argv( 第二个形参)必须是指向字符串的指针数组。加上形参说明后,main函数的函数头应写为:
main (int argc,char *argv[])。
由于main函数不能被其它函数调用,因此不可能在程序内部取得实际值。那么,在何处把实参值赋予main函数的形参呢? 实际上,main函数的参数值是从操作系统命令行上获得的。当我们要运行一个可执行文件时,在$提示符下键入文件名,再输入实际参数即可把这些实参传送到main的形参中去。
$提示符下命令行的一般形式为: ./a.out q1 q2 q3 q4 q5 q6
官方的说明是:argc保存的是命令行参数的数目,而argv是指向个参数的各指针所构成的数组。
下面新建一个test.c程序来测试一下。
编译,执行:
由此,我们可以看出来,argc表示的是键入命令行的参数的个数,包括./a.out。argv[]存放的是指向各个参数的指针。键入的命令行以空格为间隔,参数包括可执行文件a.out的位置(./a.out),'.'表示当前位置。
C语言还规定argc(第一个形参)必须是整型变量,argv( 第二个形参)必须是指向字符串的指针数组。加上形参说明后,main函数的函数头应写为:
main (int argc,char *argv[])。
由于main函数不能被其它函数调用,因此不可能在程序内部取得实际值。那么,在何处把实参值赋予main函数的形参呢? 实际上,main函数的参数值是从操作系统命令行上获得的。当我们要运行一个可执行文件时,在$提示符下键入文件名,再输入实际参数即可把这些实参传送到main的形参中去。
$提示符下命令行的一般形式为: ./a.out q1 q2 q3 q4 q5 q6
官方的说明是:argc保存的是命令行参数的数目,而argv是指向个参数的各指针所构成的数组。
下面新建一个test.c程序来测试一下。
1 #include <stdio.h> 2 int main(char argc,char *argv[]) 3 { 4 char i=0; 5 6 7 printf("argc is:%d \n",argc); 8 for(i=0;i<argc;i++) 9 { 10 printf("argv[%d] is:%s \n",i,argv[i]); 11 } 12 13 }
编译,执行:
由此,我们可以看出来,argc表示的是键入命令行的参数的个数,包括./a.out。argv[]存放的是指向各个参数的指针。键入的命令行以空格为间隔,参数包括可执行文件a.out的位置(./a.out),'.'表示当前位置。
相关文章推荐
- linux环境下的main函数传递参数的问题
- java中main函数的参数问题
- 关于宏定义与main函数的参数问题
- 关于main函数的传入参数的问题
- linux下c编程main函数的参数问题
- 20121022研究——main函数的参数问题
- 问题:C#控制台程序参数;结果:设置与读取C#控制台应用程序Main函数中的参数args
- VS+OpenCV使用自带samples代码时,main函数参数为int argc,char*argv的问题
- main函数的参数问题
- linux下c编程main函数的参数问题
- Qt的main函数参数使用注意问题
- linux下c编程main函数的参数问题
- main函数的参数问题
- 工作问题积累(十四)main函数中两个参数的作用
- c语言main函数的argc和argv[]参数问题
- main函数参数问题
- 关于main函数传参数的问题
- VS2010 main函数参数问题
- main函数可变参数问题代码
- 关于参数传递的问题 这个帖子的感想