C++main函数赋予形式参数
Posted 呆呆象呆呆
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++main函数赋予形式参数相关的知识,希望对你有一定的参考价值。
说明
C/C++程序最大的特点就是所有的程序都是用函数来装配的。main()
称之为主函数,是所有程序运行的入口。其余函数分为有参
或无参
两种,均由main()
函数或其它一般函数调用,若调用的是有参函数,则参数在调用时传递。由于main()
不能被其它函数调用,因此不可能在程序内部取得实际值。
那么,在何处把实参值赋予main()
的形参呢? 实际上,main函数的参数值是从操作系统命令行上获得的。当我们要运行一个可执行文件时,在DOS提示符下键入文件名,再输入实际参数即可把这些实参传送到main()
的形参中去。
一般编译器默认使用argc
和argv
两个名称作为main()
的参数,但这两个参数如此命名并不是必须的,你可以使用任何符合C++语言命名规范的变量名,但要保证第一个参数类型为int型
,第二个参数为char**型
。
argc
= argument count :表示传入main函数的数组元素个数,为int类型
argv
= argument vector :表示传入main函数的指针数组,为char**类型
。第一个数组元素argv[0]是程序名称,并且包含程序所在的完整路径。argc至少为1,即argv数组至少包含程序名。
备注:
数组指针是指向数组地址的指针,其本质为指针
指针数组是数组元素为指针的数组(例如int *p[3],定义了p[0],p[1],p[2]三个指针),其本质为数组。
数组指针与指针数组在某些使用情况下很相似,要注意区分
用法声明
main()
函数,经常带有参数argc
,argv
,如下:
int main (int argc,char *argv[])…或者
int main (int argc,char **argv)…
从函数参数的形式上看,包含一个整型和一个指针数组。
使用运行
在window系统中,假如编译、链接成的可执行文件为XXX.exe
,这是可以在操作系统下直接运行的文件,换句话说,就是由系统来启动运行的。
首先在C++中完成编译之后,然后命令窗口下切换到XXX.exe
所在的文件夹,再在该路径下输入带参数的命令。
在操作系统环境下,一条完整的运行命令应包括两部分:命令与相应的参数。其格式为:
命令 参数1 参数2 ... 参数n
此格式也称为命令行。命令行中的命令就是可执行文件的文件名XXX.exe
,其后所跟参数需用空格分隔,并为对命令的进一步补充,也即是传递给main()
函数的参数。
设命令行为:
program str1 str2 str3 str4 str5
其中program
为文件名,也就是一个由program.c经编译、链接后生成的可执行文件program.exe
其后各跟5个参数。对main()函数来说,它的参数argc
记录了命令行中命令
与参数
的个数,共6个,指针数组的大小由参数argc的值决定,即为char*argv[6],指针数组的取值情况如图6-15所示。
- argv[0] program
- argv[1] str1
- argv[2] str2
- argv[3] str3
- argv[4] str4
- argv[5] str5
举例
下面的程序演示argc和argv的使用:
#include<iostream>
using namespace std;
int main(int argc,char **argv)
cout << argc << endl;
for(int i=0;i<argc;i++)
cout<<"Argument "<<i<<" is "<<argv[i]<<endl;
return EXIT_SUCCESS;
数组的各指针分别指向一个字符串。应当引起注意的是接收到的指针数组的各指针是从命令行的开始接收的,首先接收到的是命令,其后才是参数。
该程序编译运行成功,产生了XXX.exe
文件,在打开DOS窗口,用cd命令进入到XXX.exe
文件夹下 ,在DOS下输入如下命令:
参考文献
C++ main函数中参数argc和argv含义及用法_zou_albert的博客-CSDN博客_main函数中argc什么意思
C++ main函数参数_qq_42775938的博客-CSDN博客_c++main函数参数
C++main函数中的形式参数_liuxiangxxl的博客-CSDN博客_c++ main函数参数
以上是关于C++main函数赋予形式参数的主要内容,如果未能解决你的问题,请参考以下文章