int main(int argc, char **argv)中两个参考的用法

本文详细解释了C/C++中main函数参数int argc与char *argv[]的用途。argc记录了命令行参数的数量,argv则是一个指向这些参数的指针数组。文章通过实例展示了如何解析并使用这些参数。

摘自:http://blog.21ic.com/user1/8617/archives/2012/96264.html#

 

argc,argv 用命令行编译程序时有用。 

  主函数main中变量(int argc,char *argv[ ])的含义 

  有些编译器允许将main()的返回类型声明为void,这已不再是合法的C++ 

  main(int argc, char *argv[ ], char *env[ ])才是UNIX和Linux中的标准写法。 

  argc: 整数,用来统计你运行程序时送给main函数的命令行参数的个数 

  * argv: 字符串数组,用来存放指向你的字符串参数的指针数组,每一个元素指向一个参数 

  argv[0] 指向程序运行的全路径名 

  argv[1] 指向在DOS命令行中执行程序名后的第一个字符串 

  argv[2] 指向执行程序名后的第二个字符串 

 

比如我们编译好了的程序叫hello,你运行./hello   ni   hao
那么 argc 就是3, 
argv[0]   --->   ./hello
argv[1]  ----->  ni
argv[2]  -----> hao

也就是说他们是运行程序时所传的参数个数,和参数。
记住了,argv[0] 是程序路径名,就是程序本身,从 argv[1]开始才是参数

<think>嗯,用户问的是关于C语言中main函数的参数使用,特别是int main(int argc, char**argv)这个形式。首先,我需要解释argcargv分别代表什么。argc是参数个数,argv是参数值的数组。 我应该举一个例子来说明如何访问这些参数。比如,在命令行中运行程序时传入参数,然后在代码中遍历argv数组输出每个参数。这样用户能直观地看到参数是如何传递的。 然后,可能需要解释argv[0]通常是程序名,而用户输入的参数从argv[1]开始。这样用户就不会混淆参数的起始位置。接下来,示例代码是关键。需要写一个简单的C程序,循环打印所有的参数,包括索引和值。这样用户可以直接编译运行测试。 还要注意说明argc的最小值是1,因为至少程序名会被传入。如果用户没有输入额外参数,argc就是1,这时候循环可能不会执行。然后,可能需要提到参数的使用场景,比如处理命令行选项或者文件路径。这样用户知道实际应用中的用途。最后,按照用户的要求,生成相关问题。问题应该围绕参数处理、其他语言中的类似机制、参数解析库以及处理特定类型参数的方法。比如,如何处理数字参数,或者使用getopt这样的库。检查是否覆盖了用户的问题点,确保解释清晰,代码正确,并且相关问题有相关性。确保代码用markdown格式包裹,解释部分详细但不过于冗长。</think>int main(int argc, char **argv)` 是C/C++程序的命令行参数接收方式,用于处理用户通过命令行输入的参数。以下是具体使用方法和示例: ```c #include <stdio.h> int main(int argc, char **argv) { printf("程序名称: %s\n", argv[0]); printf("参数总数: %d\n", argc - 1); for (int i = 1; i < argc; i++) { printf("参数 %d: %s\n", i, argv[i]); } return 0; } ``` 代码解释: 1. `argc`:参数计数器,表示命令行参数的总个数(包括程序自身名称) 2. `argv`:参数值数组,以字符串数组形式存储所有参数 3. `argv[0]`:总是存储程序可执行文件的路径 4. `argv[1]`到`argv[argc-1]`:存储用户输入的实际参数 使用示例: ```bash # 编译 gcc demo.c -o demo # 运行 ./demo hello world 123 # 输出: 程序名称: ./demo 参数总数: 3 参数 1: hello 参数 2: world 参数 3: 123 ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值