说明
  本文章旨在总结备份、方便以后查询,由于是个人总结,如有不对,欢迎指正;另外,内容大部分来自网络、书籍、和各类手册,如若侵权请告知,马上删帖致歉。
  QQ 群 号:513683159 【相互学习】
内容来源
  main函数的参数详解
  main函数的的两个参数

main函数

一、概念

  main函数,又称主函数,是程序执行的起点,也是终点。有且仅有一个。
  C语言规定main函数函数形参有两个:
    ①argc:参数计数器,整型变量 ,表示参数的个数.
    ②argv:参数数组本身,指向字符串的指针数组,表示存放参数的具体内容.【参数表】
    【注意】:argv[0]保存自身运行的目录路径和程序名,从argv[1]开始才是指向对应的参数
  故main函数一般写为:
    int main (int argc,char *argv[]){…}
    int main (int argc,char **argv){…}

二、实践

#include<stdio.h>int main(int argc,char**argv)
{int i;printf("argc = %d\n",argc);for(i = 0 ; i < argc ;i++){printf("argv[%d]=%s\n",i,argv[i]);}return 0;
}

  ①编译程序:gcc main.c -o main
  ②运行程序:./main,可得:

argc = 1
argv[0]=./main

  ③运行程序并添加参数:./main para1 para2 para3

argc = 4
argv[0]=./main
argv[1]=para1
argv[2]=para2
argv[3]=para3

三、main函数第三个参数,一般不使用

  每个程序都会接收到一张环境表,也是一个字符指针数组(包含null结束)。
  这也是main函数的第三个参数:envp环境指针。(格式为:name = value)
  具体可查看以下示例及结果:

#include<stdio.h>int main(int argc,char*argv[],char *envp[])
{int i;printf("argc = %d\n", argc);for(i = 0 ; i < argc ;i++){printf("argv[%d]=%s\n",i,argv[i]);}for(i = 0 ; envp != NULL ; i++){printf("%d %s\n",i,envp[i]);}return 0;
}
argc = 1
argv[0]=./test
0 SHELL=/bin/bash
1 SESSION_MANAGER=local/computer:@/tmp/.ICE-unix/1738,unix/computer:/tmp/.ICE-unix/1738
2 QT_ACCESSIBILITY=1
3 COLORTERM=truecolor
4 XDG_CONFIG_DIRS=/etc/xdg/xdg-ubuntu:/etc/xdg
5 XDG_MENU_PREFIX=gnome-
6 GNOME_DESKTOP_SESSION_ID=this-is-deprecated
7 LC_ADDRESS=zh_CN.UTF-8
...

四、环境变量

#include<stdio.h>int main(int argc,char*argv[])
{char **ptr;extern char **environ;for(ptr = environ ; *ptr != 0 ; ptr++){printf("%s\n",*ptr);}return 0;
}
$:  gcc test.c -o test
$:  ./test
SHELL=/bin/bash
...

入门系列:基础认知——main函数参数说明相关推荐

  1. Eggjs入门系列-基础全面讲解(完结)

    对上篇文章回顾下,上篇讲到了 服务(Service) 插件 定时任务 框架扩展 启动自定义 应用部署 日志 HttpClient Cookie 与 Session Cookie 通过 ctx.cook ...

  2. [C/C++基础知识] main函数的参数argc和argv

    该篇文章主要是关于C++\C语言最基础的main函数的参数知识,是学习C++或C语言都必备的知识点.不知道你是否知道该知识?希望对大家有所帮助. 一.main()函数参数 通常我们在写主函数时都是vo ...

  3. java基础9 main函数、this、static、super、final、instanceof 关键字

    一.main函数详解 1.public:公共的.权限是最大的,在任何情况都可以访问   原因:为了保证jvm在任何情况下都可以访问到main法 2.static:静态,静态可以让jvm调用更方便,不需 ...

  4. Spark Core快速入门系列(5) | RDD 中函数的传递

      大家好,我是不温卜火,是一名计算机学院大数据专业大二的学生,昵称来源于成语-不温不火,本意是希望自己性情温和.作为一名互联网行业的小白,博主写博客一方面是为了记录自己的学习过程,另一方面是总结自己 ...

  5. Eggjs入门系列-基础全面讲解(中)

    回顾一下上篇讲到的内容,上篇讲了: 执行流程分析 目录结构分析 文件加载顺序 生命周期 框架内置基础对象* Application Context Request & Response Con ...

  6. Tcpdump源码分析系列7:main函数

    2019独角兽企业重金招聘Python工程师标准>>> #ifndef WIN32  /*   * If a user name was specified with "- ...

  7. python入门系列1——用Beep函数手动实现7个音符的播放

    今天学了python,参考练习题,本来是找倍数的,但是想到找到之后发个提示音岂不是很有意思,然后就找到了这个函数,进而想到做个7阶音符玩玩. 7个音符差别在哪 关于乐理知识就不过多介绍了,我也是一个音 ...

  8. 音乐python播放函数-python入门系列1——用Beep函数手动实现7个音符的播放

    今天学了python,参考练习题,本来是找倍数的,但是想到找到之后发个提示音岂不是很有意思,然后就找到了这个函数,进而想到做个7阶音符玩玩. 7个音符差别在哪 关于乐理知识就不过多介绍了,我也是一个音 ...

  9. Go入门系列(十八) 反射、包和测试工具

    本系列文章目录 展开/收起 Go入门系列(一) 初识Go语言 Go入门系列(二) 变量.指针.数据类型简介和作用域 Go入门系列(三) 基础类型--整型.浮点型.布尔类型和字符串 Go入门系列(四) ...

最新文章

  1. Windows下R语言环境安装
  2. OSChina 周三乱弹 ——我求婚,你敢答应吗
  3. CentOS关机大法之shutdown应用实例
  4. 浅谈Aho-Corasick automaton(AC自动机)
  5. Windows vs Linux:\r\n 与 \r
  6. java中使用es的dsl_基于DSL的基于图论的Java程序中输入图数据的方法
  7. Java中七个潜在的内存泄露风险,你知道几个?
  8. 软件需求和结构_软件工程复习 3640组考题
  9. 原 python下DataFrame, Series, ndarray, list, dict, tuple的相互转换
  10. matlab 找椭圆中心点,点差分法matlab解椭圆型偏微分方程
  11. 可以载入史册的新名词:市场经济(蝳品经济)的上瘾依赖特性
  12. ps投影怎么做之教程:人像投影和物体长投影制作
  13. java多线程问题(代码示例)
  14. Gym - 101964E -Fishermen(二分+差分求前缀和)
  15. 30天自制操作系统第二天
  16. 基于Electron的桌面端应用开发和实践
  17. 新手学习嵌入式开发要学什么
  18. 32位和64位系统对于程序员的影响
  19. 放肆一点又何妨(一)-银川与腾格里沙漠
  20. 在虚拟机(centos)配置postgresql数据库(1) - 安装篇

热门文章

  1. 一屋不扫,会有顾忌,会有影响,扫其他的也难以专注。
  2. 2023年,什么行业有红利?
  3. 入职大厂,精选的9道Java集合面试题!
  4. 关于三维坐标系基本概念的一些另类理解
  5. JSONP JSON CORS
  6. DIYer 教你如何选购键盘
  7. Python3.x---第二篇
  8. 部门赶工,团队成员都积累了上百个小时以上的调休时间,如何调休?
  9. FISCO BCOS中交易池及其优化策略
  10. 关于SCI论文Figure图片你想知道的都在这里!