以前学C语言的时候,很少用到int argc,char *argv[],感觉没啥用,所以也就没怎么了解。现在用到了,来学习一下。argc命令行输入参数的数量,argv是字符数组,看代码。

[mapan@localhost mapam]$ ls
test.cpp
[mapan@localhost mapam]$ g++ test.cpp
[mapan@localhost mapam]$ cat test.cpp
#include<stdio.h>int main(int argc,char *argv[])
{  printf("argv[0]=%s\n",argv[0]);//printf("argv[1]=%s\n",argv[1]);printf("argv[2]: %s\n",argv[2]);printf("argv[3]: %s\n",argv[3]);printf("argv[4]: %s\n",argv[4]);printf("argv[5]: %s\n",argv[5]);printf("argv[6]: %s\n",argv[6]);printf("argv[7]: %s\n",argv[7]);printf("argv[8]: %s\n",argv[8]);printf("argv[9]: %s\n",argv[9]);printf("argv[10]: %s\n",argv[10]);return 0;
}
[mapan@localhost mapam]$ ./a.out
argv[0]=./a.out
argv[2]: HOSTNAME=localhost.localdomain
argv[3]: TERM=xterm
argv[4]: SHELL=/bin/bash
argv[5]: HISTSIZE=1000
argv[6]: SSH_CLIENT=192.168.1.51 13559 22
argv[7]: QTDIR=/usr/lib64/qt-3.3
argv[8]: OLDPWD=/home/mapan/test
argv[9]: QTINC=/usr/lib64/qt-3.3/include
argv[10]: SSH_TTY=/dev/pts/1
[mapan@localhost mapam]$

我没有打印arvg[1],因为我只输入./a.out这一个字符串,打印argv[1]会段错误。上面打印的一些字符串都是系统相关的,如果你要用argv[n]要记得在命令行输入相应的参数,不然可能会产生段错误,可能的原因是内存越界。所以在使用的时候有必要进行判断一下。

[mapan@localhost mapam]$ ./a.out a b c d
argv[0]=./a.out
argv[2]: b
argv[3]: c
argv[4]: d
argv[5]: (null)
argv[6]: HOSTNAME=localhost.localdomain
argv[7]: TERM=xterm
argv[8]: SHELL=/bin/bash
argv[9]: HISTSIZE=1000
argv[10]: SSH_CLIENT=192.168.1.51 13559 22

argv[1]应该是a

今天遇到的问题,找到原因发现也就这点东西。

int main(int argc, char* argv[])相关推荐

  1. C++ 笔记(26)— 主函数 main(int argc, char *argv[]) 参数说明

    带形参的 main 函数,如 int main( int argc, char* argv[], char **env ) 是 UNIX .Linux 以及 Mac OS 操作系统中 C/C++ 的 ...

  2. int main(int argc,char *argv[]),主函数的参数问题

    主函数的参数 在VC++中,我们有时候看到一些程序的主函数是带有参数的,虽然我们经常用到VC++但是对主函数的参数并不是很理解: int main(int argc,char *argv[]) 对于里 ...

  3. 关于int main( int argc, char* argv[] ) 中arg和argv参数理解

    在示例程序中经常可以看到argc和argv这两个参数 ,在调试代码过程中遇到main函数为int main( int argc, char* argv[] ) 这种类型时往往会报错,或者是运行起来了但 ...

  4. int main( int argc , char *argv[] , char *envp[] )中参数解说

    原文链接:https://blog.csdn.net/mengyandelove/article/details/82285504 argc是命令行总的参数个数 argv[]是argc个参数,其中第0 ...

  5. 关于main函数的(int argc,char *argv[])

    main(int argc,char *argv[ ]) argv为指针的指针 argc为整数 char **argv or: char *argv[] or: char argv[][] main( ...

  6. 关于int main(int argc,char *argv[])

    在int main(int argc,char *argv[])中的int argc和char *argv[]都是用来在命令行里传递参数.在Linux环境下用的最多,Windows环境下一般用得较少. ...

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

    一直不太理解 int main( int argc, char* argv[] ) 或者 int main( int argc, char** argv ) 经典例子 对于理解argv[ ]函数很管用 ...

  8. 关于 命令行参数 main(int argc,char** argv)

    void main(int argc, char* argv[ ])等同于void main(int argc, char* *argv) 这行中有三个字符串分别为 cp.exe doc1.txt d ...

  9. linux c之main(int argc, char *argv[], char *envp[])参数意义

    1.问题 我们常见的int main(int argc, char *argv[], char *envp[]) 各个参数的意义 2.代码 #include<stdio.h> #inclu ...

最新文章

  1. HttpClient(联网)
  2. android - 拍照
  3. springboot2自定义HttpTraceRepository
  4. HTML5+PhoneGap相机拍照
  5. 从零开始学网络|搞懂OSI参考模型和TCP/IP分层模型,看这篇文章就够了
  6. 你真的适合做前端吗?自学入行的那些坑
  7. HCIE Security 常见WEB攻击 备考笔记(幕布)
  8. 复杂网络-无标度网络BA模型
  9. ZZULIOJ:1047: 对数表
  10. ueditor imageup.php,ThinkPHP整合百度Ueditor,thinkphpueditor_PHP教程
  11. Unity 初识:创建游戏场景
  12. VScode打不开浏览器方法总结
  13. repl_backlog原理是什么
  14. windos10系统 激活
  15. ‘class QFontMetrics‘ has no member named ‘horizontalAdvance‘
  16. Python调用百度AI接口
  17. Epalloy8240亨斯迈Huntsman低粘度、低水解氯、反应活性高官能度为2.35的酚醛环氧树脂
  18. vue2.0 渲染列表在苹果手机加载不出来的问题
  19. jenkins api java封装_Jenkins api java 调用
  20. 搜索引擎关键词快速排名软件_上海搜索引擎关键词排名优化费用-电话

热门文章

  1. python3.6+RF连接mysql
  2. Java三大特性之封装
  3. 病毒木马防御与分析实战
  4. HDU 4850 Wow! Such String! 【欧拉回路】【一顿乱构造】
  5. 给交叉编译工具建立软连接用脚本
  6. 小白学phoneGap《构建跨平台APP:phoneGap移动应用实战》连载一(PhoneGap中的API)...
  7. 【转】推荐给初级Java程序员的3本进阶书
  8. 开源MongoDB管理工具MongoCola1.20 发布 离开IBM GDC的最后一个版本
  9. Sql server 2005系统表详细说明
  10. IT人不要一直做技术[转载]