C++的main函数可以没有输入参数,也可以有输入参数,而且只能有两个参数,习惯上coding如下:

 int main(int argc, char* argv[]) 或者 int main(int argc, char** argv)

  其中,argc = argument count :表示传入main函数的数组元素个数,为int类型,而 argv = argument vector :表示传入main函数的指针数组,为char**类型。第一个数组元素argv[0]是程序名称,并且包含程序所在的完整路径。argc至少为1,即argv数组至少包含程序名。

#include <iostream>
using namespace std;
int main(int argc, char* argv[])
{
for(int i=;i<argc;i++)
cout<<argv[i]<<endl;
return ;
}

  一般编译器默认使用argc和argv两个名称作为main函数的参数,但这两个参数如此命名并不是必须的,你可以使用任何符合C++语言命名规范的变量名,但要保证第一个参数类型为int型,第二个参数为char**型,如下图所示。

#include <iostream>
using namespace std;
int main(int count, char* input_parameters[])
{
for(int i=;i<count;i++)
cout<<input_parameters[i]<<endl;
return ;
}

  由于main函数不能被其他函数调用,因此不可能在程序内部取得实际值。main函数的参数值是从操作系统命令行上获取的。在window系统中,假如编译链接成的可执行文件为my_project.exe,则在命令提示符(快捷键windows+R,输入cmd)中,键入如下命令(可执行文件 参数 参数 参数 ...):

 my_project.exe jisongxie 

  将会传递三个参数给main函数,第一个argv[0]是前面提到的文件名,第二个argv[1]是"jisongxie",第三个argv[2]是“1996”。同理,可以传入更多的参数。在ubuntu系统中,可以通过终端进行相同的操作。

  传入的参数数组类型为char *字符串类型,可以通过atoi,atof函数进行类型的转换。

  1、atoi,即ascii to integer,把字符串转换成int

  2、atof,即ascii to float,把字符串转换成double

  3、atol,即ascii to long int,把字符串转换成long int

  4、atoll,即ascii to long long int,把字符串转换成long long int

  例如上述输入的1996,可以得到如下:

 int year = atoi(argv[]);  // year = 1996

  因此,通过上述的命令行输入以及程序里面的类型转换,可以通过命令行窗口传入值(字符串和数字)到程序中运行。

C++ main函数的参数的更多相关文章

  1. Atitit dsl对于数组的处理以及main函数的参数赋值

    Atitit dsl对于数组的处理以及main函数的参数赋值 1.1. 词法解析..添加了[] 方括号的解析支持1 1.2. Ast建立.添加了数组参数的支持..使用了递归下降法..getparam ...

  2. C语言中main函数的参数

    转自:http://blog.csdn.net/cnctloveyu/article/details/3905720 我们经常用的main函数都是不带参数的.因此main 后的括号都是空括号.实际上, ...

  3. 关于main函数传参数的问题

    argc是命令行总的参数个数      argv[]是argc个参数,其中第0个参数是程序的全名,以后的参数      命令行后面跟的用户输入的参数,比如:      int   main(int   ...

  4. C++向main函数传递参数的方法(实例已上传至github)

    通常情况下,我们定义的main函数都只有空形参列表: int main(){...} 然而,有时我们确实需要给mian传递实参,一种常见的情况是用户设置一组选项来确定函数所要执行的操作.例如,假定ma ...

  5. 关于main函数的参数问题

    我们经常用的main函数都是不带参数的.因此main 后的括号都是空括号.实际上,main函数可以带参数,这个参数可以认为是 main函数的形式参数.C语言规定main函数的参数只能有两个, 习惯上这 ...

  6. Java中eclipse与命令行向main函数传递参数

    我们知道main函数是java程序的入口,main函数的参数类型是String[]. 1.Eclipse中向main方法传递参数 例如: public class Mytest { public st ...

  7. C++ main()函数及其参数

    1.首先,想想C/C++在main函数之前和之后会做些什么? 我们看看底层的汇编代码: __start: : init stack; init heap; open stdin; open stdou ...

  8. main函数的参数argc和argv

    版权声明:本文为博主原创文章,转载请注明CSDN博客源地址!共同学习,一起进步~ https://blog.csdn.net/Eastmount/article/details/20413773 该篇 ...

  9. 探寻main函数的“标准”写法,以及获取main函数的参数、返回值

    main函数表示法        很多同学在初学C或者C++时,都见过各种各样的main函数表示法: main(){/*...*/} void main(){/*...*/} int main(){/ ...

随机推荐

  1. ABAP语言实现 左移 <<、无符号右移 >>> 位移操作

    这几天要在ABAP中实现 3DES 标准对称加密算法,与其他外部系统进行加密/解密操作.由于ABAP语言中没有 左移 <<.无符号右移 >>>  操作,只能自己实现 思路 ...

  2. qt5信息提示框QMessageBox用法

    information QMessageBox::information(NULL, "Title", "Content", QMessageBox::Yes ...

  3. C# System.IO.FileMode

    字段 Append 6 若存在文件,则打开该文件并查找到文件尾,或者创建一个新文件. 这需要 Append 权限. FileMode.Append 只能与 FileAccess.Write 一起使用. ...

  4. 阿里云物联网平台体验(树莓派+Nodejs篇)

    我们在<阿里云物联网平台体验(树莓派+python篇)>里,写了通过Python语言开发云到端的物联网程序,本篇文章将介绍通过nodejs来实现类似功能. 同样在阿里云官方文档里已经有了一 ...

  5. 微信小程序+微信管理后台+微信用户前台

    代码地址如下:http://www.demodashi.com/demo/15043.html #### 微信小程序+微信管理后台+微信用户前台 #### 产品介绍 基础功能开发:景区微信地图导游.天 ...

  6. Docker Mongo数据库开启用户认证

    一.启动mongo容器的几种方式 #简化版 docker run --name mongo1 -p 21117:27017 -d mongo --noprealloc --smallfiles #自定 ...

  7. 二叉树遍历-c实现

    这里主要是三种遍历,先序(preorder,NLR),中序(Inorder,LNR),后序(Postorder,LRN) N:node,L:left,R:right 基本排序:先序(NLR,节点,左, ...

  8. XML格式化工具

    做接口开发的时候,往往接受参数或返回值是一个XML的字符串.如下图,不方便辨识 两种方法, 1.将它保存为xxx.xml,然后用浏览器打开.这种方法稍微有些麻烦. 2.使用 UltraEdit 工具

  9. mongoDB用法整理

    1. mongoDB UI工具, Studio 3T,用Non_Commercial的版本就足够. 2. 查询某字段长度大于特定值的 db.test.find({ F_DAQDATA: { $type ...

  10. Deepin 15.5上安装 Node.js

    Node.js 源码安装 以下部分我们将介绍在Ubuntu Linux下安装 Node.js . 其他的Linux系统,如Centos等类似如下安装步骤. 在 Github 上获取 Node.js 源 ...