C语言main的参数;argc与argv

[复制链接]
发表于 2025-9-21 00:14:02 来自手机 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
目录

前言
什么是下令行参数
argc与argv
argc (Argument Count)
argv (Argument Vector)
示例


前言

   在C语言中,main函数的标准情势通常有两种:
  1. int main(void)
  2. int main(int argc, char *argv[])
复制代码
此中,argc 和 argv 是用于处置惩罚下令行参数的两个告急参数。本文将详细表明它们的含义和用法。
  argc与argv

   argc (Argument Count)

  

  • argc 是一个整数,表现通报给程序的下令行参数的数目。
  • 它至少为1,由于第一个参数总是程序的名称(即 argv[0])。
  • 比方,假如用户在下令行中输入 ./my_program arg1 arg2,那么 argc 的值将是3。
  argv (Argument Vector)

  

  • argv 是一个指向字符指针的数组,每个指针指向一个字符串,表现一个下令行参数。
  • argv[0] 是程序的名称。
  • argv[1] 到 argv[argc-1] 是通报给程序的现实参数。
  • argv[argc] 是一个空指针(NULL),表现参数列表的竣事。
  什么是下令行参数

   下令行参数​(Command-Line Arguments)是在启动程序时通过下令行界面通报给程序的输入参数,通常由程序名称和参数列表构成,比方:
  1. ./my_program arg1 arg2 arg3
复制代码
此中“./my_program”是程序名称;“arg1 arg2 arg3”是参数列表。
  参数列表打印示例

   示例代码
  1. #include <stdio.h>
  2. int main(int argc, char *argv[]) {
  3.     //打印参数个数
  4.     printf("Number of arguments: %d\n", argc);
  5.     //打印参数列表
  6.     for (int i = 0; i < argc; i++) {
  7.         printf("Argument %d: %s\n", i, argv[i]);
  8.     }
  9.    
  10.     return 0;
  11. }
复制代码
示例运行
  1. ./my_program arg1 arg2 arg3
复制代码
示例输出
  1. Number of arguments: 4
  2. Argument 0: ./my_program
  3. Argument 1: arg1
  4. Argument 2: arg2
  5. Argument 3: arg3
复制代码
下令行参数作用安在?

   有了下令行参数的存在,用户就可以在运行程序时指定某些选项,从而使程序根据差别的输入实验差别的利用。
  我举个好明白的例子:输入参数1就是会员身份运行程序,内里会多许多功能,输入参数2就是以会员身份运行程序,许多功能使用受限定。
  使用下令行参数指定程序功能示例

  
  1. #include <stdio.h>
  2. #include <string.h>
  3. int main(int argc, char *argv[])
  4. {
  5.     //输入的参数不符合要求,提示输入要求后直接退出运行
  6.     if (argc != 2)
  7.     {
  8.         printf("Usage:\n\t%s -number[1-2]\n", argv[0]);
  9.         return 1;
  10.     }
  11.     //输入参数1,执行第一种功能
  12.     if (strcmp("-1", argv[1]) == 0)
  13.     {
  14.         printf("function 1\n");
  15.     }
  16.     //输入参数2,执行第二种功能
  17.     else if (strcmp("-2", argv[1]) == 0)
  18.     {
  19.         printf("function 1\n");
  20.     }
  21.     //输入的参数不符合要求,提示输入要求后直接退出运行
  22.     else
  23.     {
  24.         printf("unknown!\n");
  25.         printf("Usage:\n\t%s -number[1-2]\n", argv[0]);
  26.         return 1;
  27.     }
  28.     return 0;
  29. }
复制代码



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
继续阅读请点击广告
回复

使用道具 举报

×
登录参与点评抽奖,加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表