当前位置: 首页 > news >正文

带参数的main函数

第一个带参数的main。

 

#include <iostream.h>

 
int main(int argc,char *argv[])
{
       for(inti=0;i<argc;i++)
       {
              cout<<argv[i]<<'\t';              //
       }
       return0;
}

 

/*

int argc, char **argv 用于运行时,把命令行参数传入主程序。

argc -- 命令行参数总个数,包括 可执行程序名。

argv[i] -- 第 i 个参数。

argv[0] -- 可执行程序名。

*/

 

关于带参数的main函数网络收集:
int main(int argc,char **argv) 这里面的**argv含义··

是用来传递参数的,假如你编译成的文件名是a.exe,那么在命令提示符下可以通过a.exe12 34来向程序传递参数,这时两个参数就会传递到字符串数组argv中,注意此时实际传递了三个参数,第一个参数是文件名,第二个参数是12,第三个是34,而argc就是参数个数。

int argc, char **argv 用于运行时,把命令行参数传入主程序。

argc -- 命令行参数 总个数,包括 可执行程序名。

argv[i] --  第 i 个参数。

argv[0] -- 可执行程序名。

 

// 例如运行:

abc.exe

argc 等于 1, argv[0] 是 "abc.exe"

 

// 例如运行:

rec.exe  4  5.2

argc 等于 3, argv[0] 是 "rec.exe", argv[1] 是 "4", argv[2] 是 "5.2".

主函数里若有:

int x;

float y;

char s[80];

strcpy(s,argv[0]);  // 程序名存入 了 s

sscanf(argv[1],"%d",&x);  // x 得到数值4

sscanf(argv[2],"%f",&y);  // y 得到数值 5.2


ANSI-C(C89/C99)的话main()函数有2种主要形式。 

(1) int main(void) 
(2) int main(int argc, char *argv[]) 

(2)也可写成int main(int argc, char **argv) 
argv[argc]放空指针(NULL指针)。 
argc和argv可以用别名。 

另外,还有一种受系统限制的形式: 
int main(int argc, char *argv[], char *envp[]) 
前两个参数同(2),第三个参数envp[]放环境变量。 
这个形式很少用。 

所以严格讲, 
ANSI-C推荐的带参数的main()函数只有上面(2)这一种。 

另外,搜集了一下C和C++中常见的几种形式: 

(1) main() 
(2) int main() 
(3) int main(void) 
(4) int main(int, char**) 
(5) int main(int, char*[]) 
(6) int main(int argc, char **argv) 
(7) int main(int argc, char *argv[]) 
(8) int main( int argc, char *argv[], char*envp[]) 
(9) void main(void) 

(1)是(3)的简写。不推荐使用。 
(2)是(3)的简写。在C++中是正确的形式。 
(3)在C和C++中都是正确的形式。推荐使用。(还有缺省int的main(void)形式)。 
(4)和(5)是不用参数时的一种写法。编译器级别高时会警告。不推荐使用。 
(6)是(7)的另外写法。两种都可以,凭个人爱好。 
(7)是带参数的正确的形式。推荐使用。 
(8)是一种很少用的写法,且受系统限制。 
(9)一般不认为是正确的写法。但是在嵌入式系统中有使用(包括void main()形式)

转载于:https://www.cnblogs.com/zerocc/archive/2010/12/17/1909642.html

相关文章:

  • 基本文章
  • 使用sharppcap抓数据包
  • SOA
  • Mac OS 10.6.5上如何默认启动mysq服务
  • fedora linux 下安装pwntcha[验证码开源]
  • 初识 统一建模语言(UML)
  • OllyDBG 1.10汉化第二版
  • Eclipse Android配置
  • asp.net与Discuz-UCenter整合(3):UCenter与应用同步
  • css中的相对定位和绝对定位
  • cvs svnmanager
  • TMS3705 射频识别技术软硬件系统研制 - 安防,免费资源,弱电技术,安防技术,智能化,金辉,金辉安防同盟,安全防范,电子技术,监控技术,摄像机...
  • vs2010 aspx页面创建控件时出错 未将对象引用设置到对象的实例 解决方法
  • IBM超级电脑Watson人机大赛首轮领先
  • 创意空间
  • [分享]iOS开发 - 实现UITableView Plain SectionView和table不停留一起滑动
  • Mac 鼠须管 Rime 输入法 安装五笔输入法 教程
  • overflow: hidden IE7无效
  • WordPress 获取当前文章下的所有附件/获取指定ID文章的附件(图片、文件、视频)...
  • 回顾2016
  • 基于HAProxy的高性能缓存服务器nuster
  • 基于OpenResty的Lua Web框架lor0.0.2预览版发布
  • 你不可错过的前端面试题(一)
  • 让你的分享飞起来——极光推出社会化分享组件
  • 网页视频流m3u8/ts视频下载
  • 一起来学SpringBoot | 第十篇:使用Spring Cache集成Redis
  • 阿里云重庆大学大数据训练营落地分享
  • 数据可视化之下发图实践
  • # 学号 2017-2018-20172309 《程序设计与数据结构》实验三报告
  • #、%和$符号在OGNL表达式中经常出现
  • #我与Java虚拟机的故事#连载13:有这本书就够了
  • (附源码)php新闻发布平台 毕业设计 141646
  • (附源码)ssm教材管理系统 毕业设计 011229
  • (转)mysql使用Navicat 导出和导入数据库
  • .Net IE10 _doPostBack 未定义
  • .NET 实现 NTFS 文件系统的硬链接 mklink /J(Junction)
  • .netcore 获取appsettings
  • .net和php怎么连接,php和apache之间如何连接
  • @DataRedisTest测试redis从未如此丝滑
  • @for /l %i in (1,1,10) do md %i 批处理自动建立目录
  • @Transactional注解下,循环取序列的值,但得到的值都相同的问题
  • [3D游戏开发实践] Cocos Cyberpunk 源码解读-高中低端机性能适配策略
  • [Android实例] 保持屏幕长亮的两种方法 [转]
  • [AX]AX2012 AIF(四):文档服务应用实例
  • [BUG] Authentication Error
  • [BUUCTF]-Reverse:reverse3解析
  • [C]整形提升(转载)
  • [codeforces]Levko and Permutation
  • [Hadoop in China 2011] 蒋建平:探秘基于Hadoop的华为共有云
  • [IE编程] 如何在IE8 下调试BHO控件/工具栏(调试Tab进程)
  • [IE技巧] 如何让IE 启动的时候不加载任何插件
  • [iOS]中字体样式设置 API
  • [Kubernetes]8. K8s使用Helm部署mysql集群(主从数据库集群)
  • [leetcode 双指针]
  • [Linux]文件基础-如何管理文件