- 浏览: 369889 次
- 性别:
- 来自: 苏州
文章分类
- 全部博客 (335)
- C++ (190)
- 设计模式 (43)
- 数据库技术 (5)
- 网络编程 (11)
- 自动化测试 (6)
- Linux (13)
- OpenSSL (10)
- MS Crypt API (5)
- SCM (2)
- English (4)
- Android (10)
- EMV规范 (1)
- Saturn Platform (0)
- C (10)
- SQL (2)
- ASP.NET (3)
- 英语口语学习 (3)
- 调试工具 (21)
- 编译技术 (5)
- UML (1)
- 项目管理 (5)
- 敏捷开发 (2)
- Http Server (6)
- 代码审查、代码分析 (5)
- 面试基础 (10)
- 重点知识 (16)
- STL (6)
- Efficient C++资料 (8)
- 数据结构和算法 (7)
- 读书笔记 (0)
- 开源项目 (4)
- 多线程 (2)
- Console App (6)
- 个人开源项目 (4)
- IBM DevelopWorks (4)
- Java (16)
- 内存泄漏相关调试和检测 (13)
- 软件测试相关技术 (2)
- C# (11)
- Apple Related (1)
- 软件测试和管理 (2)
- EMV (1)
- Python (1)
- Node.js (6)
- JavaScript (5)
- VUE (1)
- Frontend (1)
- Backend (4)
- RESTful API (3)
- Firebase (3)
最新评论
-
u013189503:
来个密码吧
[C++][Logging] 项目中写日志模块的实现 -
wyf_vc:
来个密码啊!!
[C++][Logging] 项目中写日志模块的实现
转自http://blog.csdn.net/yhawaii/article/details/7361302
main函数可以不带参数,也可以带参数,这个参数可以认为是 main函数的形式参数。C语言规定main函数的参数只能有两个,习惯上这两个参数写为argc和argv。因此,main函数的函数头可写为:
C语言还规定argc(第一个形参)必须是整型变量,argv( 第二个形参)必须是指向字符串的指针数组。加上形参说明后,main函数的函数头应写为:
由于main函数不能被其它函数调用,因此不可能在程序内部取得实际值。那么,在何处把实参值赋予main函数的形参呢? 实际上,main函数的参数值是从操作系统命令行上获得的。当我们要运行一个可执行文件时,在DOS提示符下键入文件名,再输入实际参数即可把这些实参传送到main的形参中去。
DOS提示符下命令行的一般形式为:
但是应该特别注意的是,main 的两个形参和命令行中的参数在位置上不是一一对应的。因为,main的形参只有二个,而命令行中的参数个数原则上未加限制。argc参数表示了命令行中参数的个数(注意:文件名本身也算一个参数),argc的值是在输入命令行时由系统按实际参数的个数自动赋予的。
例如有命令行为:
由于文件名E24本身也算一个参数,所以共有4个参数,因此argc取得的值为4。argv参数是字符串指针数组,其各元素值为命令行中各字符串(参数均按字符串处理)的首地址。 指针数组的长度即为参数个数。数组元素初值由系统自动赋予。其表示如图所示:
本例是显示命令行中输入的参数。如果上例的可执行文件名为e24.exe,存放在A驱动器的盘内。因此输入的命令行为:
则运行结果为:
该行共有4个参数,执行main时,argc的初值即为4。argv的4个元素分为4个字符串的首地址。执行while语句,每循环一次argv值减1,当argv等于1时停止循环,共循环三次,因此共可输出三个参数。在printf函数中,由于打印项*++argv是先加1再打印, 故第一次打印的是argv[1]所指的字符串BASIC。第二、三次循环分别打印后二个字符串。而参数e24是文件名,不必输出。
main函数可以不带参数,也可以带参数,这个参数可以认为是 main函数的形式参数。C语言规定main函数的参数只能有两个,习惯上这两个参数写为argc和argv。因此,main函数的函数头可写为:
main (argc,argv)
C语言还规定argc(第一个形参)必须是整型变量,argv( 第二个形参)必须是指向字符串的指针数组。加上形参说明后,main函数的函数头应写为:
main (int argc,char *argv[])
由于main函数不能被其它函数调用,因此不可能在程序内部取得实际值。那么,在何处把实参值赋予main函数的形参呢? 实际上,main函数的参数值是从操作系统命令行上获得的。当我们要运行一个可执行文件时,在DOS提示符下键入文件名,再输入实际参数即可把这些实参传送到main的形参中去。
DOS提示符下命令行的一般形式为:
C:\>可执行文件名 参数 参数……;
但是应该特别注意的是,main 的两个形参和命令行中的参数在位置上不是一一对应的。因为,main的形参只有二个,而命令行中的参数个数原则上未加限制。argc参数表示了命令行中参数的个数(注意:文件名本身也算一个参数),argc的值是在输入命令行时由系统按实际参数的个数自动赋予的。
例如有命令行为:
C:\>E24 BASIC foxpro FORTRAN
由于文件名E24本身也算一个参数,所以共有4个参数,因此argc取得的值为4。argv参数是字符串指针数组,其各元素值为命令行中各字符串(参数均按字符串处理)的首地址。 指针数组的长度即为参数个数。数组元素初值由系统自动赋予。其表示如图所示:
main(int argc,char *argv) { while(argc-- > 1) printf("%s",*++argv); }
本例是显示命令行中输入的参数。如果上例的可执行文件名为e24.exe,存放在A驱动器的盘内。因此输入的命令行为:
C:\>a:e24 BASIC foxpro FORTRAN
则运行结果为:
BASIC foxpro FORTRAN
该行共有4个参数,执行main时,argc的初值即为4。argv的4个元素分为4个字符串的首地址。执行while语句,每循环一次argv值减1,当argv等于1时停止循环,共循环三次,因此共可输出三个参数。在printf函数中,由于打印项*++argv是先加1再打印, 故第一次打印的是argv[1]所指的字符串BASIC。第二、三次循环分别打印后二个字符串。而参数e24是文件名,不必输出。
发表评论
-
FreeRTOS
2022-03-05 16:31 248Ref https://blog.csdn.net/weix ... -
串口通讯相关
2018-11-02 13:44 411https://bbs.csdn.net/wap/topics ... -
[转]C++验证IP是否可以PING通
2018-10-30 17:54 1325https://www.cnblogs.com/guoyz13 ... -
C++/MFC 換皮膚
2018-10-20 11:05 477https://blog.csdn.net/u01123991 ... -
WinCE 截屏 - C++ 代碼
2018-08-31 09:45 574// this function create a bmp ... -
Android NDK搭建環境
2017-11-27 13:25 580https://www.cnblogs.com/ut2016- ... -
8583协议相关
2017-10-17 13:38 5738583相关资料,整理中... -
Java高级应用之JNI
2017-06-19 09:00 600参考link http://www.cnblogs.com/l ... -
C++实现ping功能
2017-04-18 11:21 2155基础知识 ping的过程是向目的IP发送一个type=8的I ... -
OpenSSL 编译环境搭建
2017-03-27 15:01 9061 安裝VS2008到 c:\Program Files (x ... -
最优非对称加密填充(OAEP)
2017-03-25 14:53 1582OpenSSL命令---rsautl http://blog. ... -
[Platform Builder] 设置SVM OS build Env
2016-11-10 11:39 01 copy one OSDesign Project to ... -
[Windows] System Error Codes(GetLastError )0-----5999
2016-10-26 13:28 1881ERROR_SUCCESS 0 (0x0) T ... -
开源Windows驱动程序框架
2016-09-17 21:35 871转自 http://code.csdn.net/news/28 ... -
c/c++代码中执行cmd命令
2016-09-14 14:50 1908转自 http://blog.csdn.net/slixinx ... -
C#使用C++标准DLL实例(包含callback)
2016-09-11 19:44 1086C++编写标准Win32DLL如下 头文件 /***** ... -
C#调用C++的DLL搜集整理的所有数据类型转换方式
2016-09-09 16:07 969转自 http://www.cnblogs.com/zeroo ... -
WinCE CPU使用率计算 测试工具
2016-09-08 16:14 991转自 http://blog.csdn.net/jan ... -
switch在C++与C#中的一些差异
2016-09-08 15:19 810参考链接 http://blog.csdn.net/weiwe ... -
C++ 鼠标模拟程序
2016-09-04 12:09 1612转自 http://blog.csdn.net/weixinh ...
相关推荐
在标题“main函数的两个参数”中提到的,实际上是指`main`函数可以接受两个参数,这是一个在标准C/C++中不常用但仍然合法的特性。通常我们看到的`main`函数定义可能是这样的: ```c int main() { // 程序代码 } ``...
该程序是我写的博客“一起talk C栗子吧(第五十七回:C语言实例--main函数的参数)”的配套程序,共享给大家使用
5.保证无毒 1.简单,方便,实用 3.实例可以自行改用 1.如有非法,本人无法律责任,由改动代码人负责! 8.需要更多本人作品,查找标签“朱建强” 7.请下载,杀毒后再使用! 4.如果需要联系我请看左边数字!...
main 函数传递参数 main 函数是 C/C++ 语言中的入口函数,即程序的开始执行点。在控制台程序中,main 函数可以接收参数,这些参数可以来自操作系统的命令行。了解 main 函数的参数传递机制对编写控制台程序非常重要...
当我们谈论`main()`函数的两个参数`argc`和`argv`时,我们实际上是在讨论如何处理命令行参数。这些参数是在程序启动时由操作系统传递给程序的,通常在DOS或类DOS环境下。 `argc`(Argument Count)是一个整数,它...
### C++中的_main()函数及其参数详解 #### 一、引言 在C++编程语言中,`main()`函数是程序执行的起点。通常情况下,`main()`函数没有参数或者带有两个参数:`argc`和`argv[]`。这两个参数在处理命令行参数时尤为...
C程序中如何调用main函数参数 在C程序设计中,main函数是程序的入口点,它可以接受命令行参数,这些参数可以在程序中被使用。main函数的原型通常如下所示: int main(int argc, char argv) 其中,argc表示参数的...
在Android Studio中,通常我们开发的是Android应用程序,它们的核心入口点是`Activity`类的`onCreate()`方法,而非Java程序中的`main()`函数。然而,如果你需要在Android Studio中测试独立的Java类,比如包含`main()...
然而,我们可以为`main()`函数添加参数,使其具有接收外部输入的能力。主要有两种形式: 1. 接收命令行参数:`int main(int argc, char* argv[])` 在这种形式中,`argc`表示命令行参数的总数(包括程序本身的名称...
#### main函数参数详解 `main`函数在C语言中接受两个参数:`argc`和`argv`,它们分别代表了命令行参数的数量和内容。 - `int argc`: 参数计数器,表示传入命令行参数的数量(包括程序名本身)。在上面的例子中,`...
在C语言中,函数参数的传递主要有三种方式:值传递、地址传递和引用传递。这三种方式各自有不同的特性和应用场景,理解它们的工作原理对于编写高效和正确的程序至关重要。 1. 值传递(Value Passing) 值传递是最...
### C语言面试题:Main函数详解 #### 题目背景 在C语言编程中,`main`函数是每个程序的入口点。正确理解和编写`main`函数对于编写高质量、可移植性强的程序至关重要。本篇文章将深入探讨C语言中的`main`函数,包括...
理解main函数参数的使用,能够处理命令行输入,而函数名作为参数和指向函数的指针变量则扩展了函数的功能,使我们能够实现函数间的更复杂交互。最后,递归调用是编程中的一种强大工具,但需要明智地使用以避免性能...
1. **main函数的返回值** `main`函数的返回值通常是一个整型,用来指示程序的退出状态。当`main`函数返回`0`时,这表明程序正常执行完毕,没有遇到任何错误。如果返回其他非零值,这通常意味着程序在运行过程中遇到...
函数参数传递问题(一级指针和二级指针) 函数参数传递问题是指在函数调用时,参数的传递方式对函数的执行结果的影响。函数参数可以是基本类型、数组、结构体、指针等,在函数调用时,参数的传递方式会影响函数的...
当我们谈论“带参数的main函数”,通常是指在`main`函数中接收命令行参数的能力。这些参数是在程序启动时通过操作系统传递给程序的,允许开发者在不修改代码的情况下,对程序的行为进行一定程度的控制或传递数据。 ...
下面是一个使用main函数参数的示例程序,名为EXAMPLE.EXE,它演示了如何在main函数中使用argc、argv和env参数: ```c #include #include main(int argc, char* argv[], char* env[]) { int i; printf("These ...
main 函数的参数是一个字符串数组,即 String[] args,这是因为字符串类型的参数可以表示任何类型的参数,而其他类型的参数则不能。例如,命令行参数 "jack" 和 "100" 可以被解释为字符串,但不能被解释为整数或...