博客
关于我
int main(int argc,char* argv[])详解
阅读量:564 次
发布时间:2019-03-09

本文共 951 字,大约阅读时间需要 3 分钟。

argc 和 argv 是 C 编程语言中用于处理命令行输入参数的重要工具。让我们逐步理解它们的作用和用法:

  • argc(参数计数器)

    • 定义:int argc;用于记录用户在命令行输入时提供给程序的参数个数。
    • 使用场景:用于判断程序是否接受参数,以及参数的数量。例如,当用户输入“程序名 arg1 arg2”时,argc 会等于3,其中包括程序名 arg1 和 arg2 作为参数。
  • argv(参数数组)

    • 定义:char *argv[];这是一个字符指针数组,存储用户输入的命令行参数。
    • 结构
      • argv[0] 总是指向程序本身的文件名,包括完整路径。
      • argv[1] 到 argv[n-1] 分别指向用户输入的各个参数。
    • 例子:输入“程序名 arg1 arg2”,则:
      • argv[0] = "程序名"
      • argv[1] = "arg1"
      • argv[2] = "arg2"
  • main 函数参数处理

    • 选项一:int main(int argc, char *argv[]);
    • 选项二:int main(int argc, char **argv);
  • 区别与选择

    • 选项一:argv 是一个数组,长度由用户输入决定,编译器自动扩展。
    • 选项二:argv 是一个可变数组,长度由系统提供,需确保在编译时定义为指针数组或通过函数指针处理。
  • 处理命令行参数

    • 使用 argc 和 argv 读取输入参数。
    • 一般循环从 argv[1] 到 argv[argc-1] 处理用户输入的每个参数。
  • 环境变量(envp)

    • 一个指针数组,用于访问系统的环境变量,如 PATH、USER 等。
    • 一般用于特定需要时获取系统配置信息。
  • exit() 函数

    • 用于程序退出,返回一个整数作为退出代码。
    • 用法:exit(0) 表示正常结束,exit(-1) 或类似表示错误退出,可被操作系统接收处理。
  • 常见错误与注意事项

    • 避免直接访问 argv[argc],因为它为未使用的部分保留空间。
    • 在循环处理参数时,用 argc 来控制循环次数,避免越界。
    • 在处理字符串时确保null终止字符,以避免意外字符读取。
  • 通过以上理解,我们可以在代码中正确使用 argc 和 argv,来实现对用户输入参数的处理,使程序功能更加灵活和用户友好。

    转载地址:http://gcnpz.baihongyu.com/

    你可能感兴趣的文章
    Mysql InnoDB存储引擎中缓冲池Buffer Pool、Redo Log、Bin Log、Undo Log、Channge Buffer
    查看>>
    MySQL InnoDB引擎的锁机制详解
    查看>>
    Mysql INNODB引擎行锁的3种算法 Record Lock Next-Key Lock Grap Lock
    查看>>
    mysql InnoDB数据存储引擎 的B+树索引原理
    查看>>
    mysql innodb通过使用mvcc来实现可重复读
    查看>>
    mysql insert update 同时执行_MySQL进阶三板斧(三)看清“触发器 (Trigger)”的真实面目...
    查看>>
    mysql interval显示条件值_MySQL INTERVAL关键字可以使用哪些不同的单位值?
    查看>>
    Mysql join原理
    查看>>
    MySQL Join算法与调优白皮书(二)
    查看>>
    Mysql order by与limit混用陷阱
    查看>>
    Mysql order by与limit混用陷阱
    查看>>
    mysql order by多个字段排序
    查看>>
    MySQL Order By实现原理分析和Filesort优化
    查看>>
    mysql problems
    查看>>
    mysql replace first,MySQL中处理各种重复的一些方法
    查看>>
    MySQL replace函数替换字符串语句的用法(mysql字符串替换)
    查看>>
    mysql replace用法
    查看>>
    Mysql Row_Format 参数讲解
    查看>>
    mysql select, from ,join ,on ,where groupby,having ,order by limit的执行顺序和书写顺序
    查看>>
    MySQL Server 5.5安装记录
    查看>>